home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER53A.ZIP / INTERRUP.D < prev    next >
Text File  |  1997-01-12  |  360KB  |  10,701 lines

  1. Interrupt List, part 4 of 16
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996,1997 Ralf Brown
  3. --------K-16FF-------------------------------
  4. INT 16 - KEYBOARD - KBUF extensions - ADD KEY TO TAIL OF KEYBOARD BUFFER
  5.     AH = FFh
  6.     DX = scan code
  7. Return: AL = status
  8.         00h success
  9.         01h failure
  10. Program: KBUF is a keyboard buffer expander by Mark Adler
  11. SeeAlso: AH=05h
  12. --------V-16FF-------------------------------
  13. INT 16 - OPTIMA 1024 VGA-Sync,ET-3000 chipset - QUERY ZOOM INTERRUPT
  14.     AH = FFh
  15. Return: AL = interrupt number to which BIOS keyboard handler has been relocated
  16.     AL+1 = Zoom interrupt number
  17.     BX = hotkey
  18. Notes:    the default interrupts are 60h for keyboard and 61h for Zoom interrupt;
  19.       the default hot key is F10
  20.     not all vendors include the Tseng TSR which supports these functions
  21. SeeAlso: INT 61/AX=0000h"OPTIMA",INT 61/AX=0005h"OPTIMA"
  22. Index:    hotkeys;OPTIMA 1024 VGA
  23. ----------16FF--BH00-------------------------
  24. INT 16 - FREEZE.COM - INSTALLATION CHECK
  25.     AH = FFh
  26.     BH = 00h
  27. Return: BH = FFh if installed
  28. Program: FREEZE is a PC Magazine utility
  29. --------d-16FF70BX0000-----------------------
  30. INT 16 U - PC Tools v8+ DRIVEMAP - INSTALLATION CHECK
  31.     AX = FF70h
  32.     BX = 0000h
  33.     CX = 4C69h ('Li')
  34.     DX = 6E6Bh ('nk')
  35. Return: AX = 0000h
  36.     CX = 4350h ('CP')
  37.     DH = major version
  38.     DL = minor version
  39. Program: DRIVEMAP is a redirector which allows drives on computers connected
  40.       over the parallel or serial ports to appear as local drives
  41. SeeAlso: AX=FF70h/BX=0001h,AX=FF70h/BX=0002h
  42. --------d-16FF70BX0001-----------------------
  43. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  44.     AX = FF70h
  45.     BX = 0001h
  46.     DL = ???
  47. Return: AX = ???
  48.     DH = ???
  49. SeeAlso: AX=FF70h/BX=0000h,AX=FF70h/BX=0002h
  50. --------d-16FF70BX0002-----------------------
  51. INT 16 U - PC Tools v8+ DRIVEMAP - ???
  52.     AX = FF70h
  53.     BX = 0002h
  54.     CX = ???
  55.     DX = ???
  56. Return: AX = ??? or FFFEh/FFFFh on error
  57.     DL = ???
  58. BUG:    DRIVEMAP will branch to random locations for BX values other than
  59.       those listed above for v8.0-9.0 because a) the incorrect register is
  60.       range-tested, resulting in BX=0003h-5CD6h being accepted as valid
  61.       function numbers, and b) the conditional which branches on invalid
  62.       function numbers jumps to the following instruction, becoming a NOP
  63. SeeAlso: INT 2F/AX=9203h"DRIVEMAP"
  64. Index:    installation check;DRIVEMAP
  65. --------T-16FF80BX0000-----------------------
  66. INT 16 U - PC Tools v8+ CPTASK - INSTALLATION CHECK
  67.     AX = FF80h
  68.     BX = 0000h
  69.     CX = 0000h
  70.     DX = 0000h
  71. Return: CX = 5555h if installed
  72. Program: CPTASK is a task switcher by Central Point Software
  73. --------T-16FF80BX0001-----------------------
  74. INT 16 U - PC Tools v8+ CPTASK - GET ???
  75.     AX = FF80h
  76.     BX = 0001h
  77.     ???
  78. Return: DX:SI -> task list??? (ten entries of 70h bytes in v9.0)
  79.     BX = ??? (PSP segment of resident code???)
  80. --------T-16FF80BX0002-----------------------
  81. INT 16 U - PC Tools v8+ CPTASK - GET ???
  82.     AX = FF80h
  83.     BX = 0002h
  84. Return: DX:SI -> ???
  85. --------T-16FF80BX0003-----------------------
  86. INT 16 U - PC Tools v8+ CPTASK - GET ??? FLAGS
  87.     AX = FF80h
  88.     BX = 0003h
  89. Return: AX = flags (see #0514)
  90. SeeAlso: AX=FF80h/BX=0004h,AX=FF80h/BX=0006h
  91.  
  92. Bitfields for CPTASK flags:
  93. Bit(s)    Description    (Table 0514)
  94.  10    ???
  95.  13    ???
  96.  14    ???
  97.  15    ???
  98. --------T-16FF80BX0004-----------------------
  99. INT 16 U - PC Tools v8+ CPTASK - SET ???
  100.     AX = FF80h
  101.     BX = 0004h
  102.     CX = new value of ???
  103. Return: ???
  104. Note:    this function also sets bit 14 of the flags word returned by
  105.       AX=FF80h/BX=0003h
  106. --------T-16FF80BX0005-----------------------
  107. INT 16 U - PC Tools v8+ CPTASK - GET NUMBER OF ACTIVE TASKS???
  108.     AX = FF80h
  109.     BX = 0005h
  110. Return: AX = number of active tasks???
  111. --------T-16FF80BX0006-----------------------
  112. INT 16 U - PC Tools v8+ CPTASK - GET AND CLEAR ??? FLAG
  113.     AX = FF80h
  114.     BX = 0006h
  115. Return: AX = old state (0000h clear, 0001h set)
  116. Note:    the tested flag is bit 13 of the flags returned by AX=FF80h/BX=0003h
  117. --------T-16FF80BX0007-----------------------
  118. INT 16 U - PC Tools v8+ CPTASK - ???
  119.     AX = FF80h
  120.     BX = 0007h
  121.     ES:DI -> ???
  122.     ???
  123. Return: ???
  124. --------T-16FF80BX0008-----------------------
  125. INT 16 U - PC Tools v8+ CPTASK - ???
  126.     AX = FF80h
  127.     BX = 0008h
  128.     ???
  129. Return: ???
  130. --------T-16FF80BX0009-----------------------
  131. INT 16 U - PC Tools v8+ CPTASK - GET ???
  132.     AX = FF80h
  133.     BX = 0009h
  134. Return: CL = ???
  135.     CH = ??? (01h or 02h)
  136. --------T-16FF80BX000A-----------------------
  137. INT 16 U - PC Tools v9+ CPTASK - SET ???
  138.     AX = FF80h
  139.     BX = 000Ah
  140.     DS:SI -> 128-byte buffer containing ???
  141. --------T-16FF80BX000B-----------------------
  142. INT 16 U - PC Tools v9+ CPTASK - SET ???
  143.     AX = FF80h
  144.     BX = 000Bh
  145.     DX = index of ??? task (1-10)
  146. --------T-16FF80BX000C-----------------------
  147. INT 16 U - PC Tools v9+ CPTASK - SET IDLE??? DELAY
  148.     AX = FF80h
  149.     BX = 000Ch
  150.     CX = new delay time in minutes
  151. --------T-16FF80BX4350-----------------------
  152. INT 16 U - PC Tools v8+ CPTASK - UNINSTALL
  153.     AX = FF80h
  154.     BX = 4350h ('CP')
  155.     CX = 5354h ('ST')
  156. Return: never returns; terminates all tasks and exits to program originally
  157.       calling CPTASK
  158. --------U-16FF90-----------------------------
  159. INT 16 U - PC Tools v8+ DESKTOP - ???
  160.     AX = FF90h
  161.     ???
  162. Return: ???
  163. Note:    available only when popped up
  164. --------U-16FF91-----------------------------
  165. INT 16 U - PC Tools v7+ DESKTOP - ???
  166.     AX = FF91h
  167.     ???
  168. Return: AX = 0000h
  169. Note:    calls AX=FFFDh after ???
  170. SeeAlso: AX=FF92h,AX=FFFDh
  171. --------U-16FF92-----------------------------
  172. INT 16 U - PC Tools v7+ DESKTOP - ???
  173.     AX = FF92h
  174.     ???
  175. Return: AX = 0000h
  176. Note:    like AX=FF91h, but temporarily sets ??? to 3
  177. SeeAlso: AX=FF91h,AX=FFFDh
  178. --------U-16FF93-----------------------------
  179. INT 16 U - PC Tools v7+ DESKTOP - SET ??? FLAG
  180.     AX = FF93h
  181. --------U-16FF94-----------------------------
  182. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  183.     AX = FF94h
  184.     CX = ??? (default 0017h)
  185. --------U-16FF95-----------------------------
  186. INT 16 U - PC Tools v7+ DESKTOP - SET ???
  187.     AX = FF95h
  188.     BX = ???
  189. --------U-16FF96-----------------------------
  190. INT 16 U - PC Tools v7+ DESKTOP - ???
  191.     AX = FF96h
  192.     CL = ???
  193. Return: AX = ???
  194. --------U-16FF97-----------------------------
  195. INT 16 U - PC Tools v7+ DESKTOP - ???
  196.     AX = FF97h
  197.     DS:DX -> buffer for ??? (see #0515)
  198. Return: ???
  199.  
  200. Format of PC Tools DESKTOP buffer:
  201. Offset    Size    Description    (Table 0515)
  202.  00h 48 BYTEs    ???
  203.  30h 128 BYTEs    ???
  204. --------U-16FF98-----------------------------
  205. INT 16 U - PC Tools v7+ DESKTOP - OPEN \DESK.OVL FILE AND SEEK TO OVERLAY
  206.     AX = FF98h
  207.     DX = byte offset in file of overlay header (see #0516)
  208. Return: BX = file handle for DESK.OVL file
  209. Desc:    open the DESK.OVL file, seek to the specified offset, read in the
  210.       overlay header, and seek to the offset specified by the header
  211.  
  212. Format of PC Tools DESKTOP overlay header:
  213. Offset    Size    Description    (Table 0516)
  214.  00h 12 BYTEs    NUL-padded ASCII overlay filename
  215.  0Ch    DWORD    offset within DESK.OVL file of actual overlay
  216. --------U-16FF99-----------------------------
  217. INT 16 U - PC Tools v7+ DESKTOP - ???
  218.     AX = FF99h
  219.     ???
  220. Return: ???
  221. --------U-16FF9A-----------------------------
  222. INT 16 U - PC Tools v7+ DESKTOP - GET NAME OF COLOR SCHEME
  223.     AX = FF9Ah
  224. Return: ES:BX -> name of current color scheme
  225. Note:    available even if not popped up
  226. --------U-16FF9B-----------------------------
  227. INT 16 U - PC Tools v7+ DESKTOP - UNUSED
  228.     AX = FF9Bh
  229. Return: ???
  230. Note:    sounds triple-length beep
  231. --------T-16FF9C-----------------------------
  232. INT 16 U - PC Tools v8+ CPTASK - SET/CLEAR ??? POINTER
  233.     AX = FF9Ch
  234.     BL = function
  235.         00h set ??? pointer
  236.         DS:SI -> ???
  237.         01h clear pointer to 0000h:0000h
  238. ----------16FF9D-----------------------------
  239. INT 16 U - PC Tools v8+ CPTASK, VSAFE - ???
  240.     AX = FF9Dh
  241.     ES:BX -> ??? word
  242. Return: ???
  243. Note:    if ES is non-zero, the word pointed at by ES:BX determines whether the
  244.       ??? flag is cleared (word = 0000h) or set (word is nonzero).    The
  245.       flag is always cleared if ES=0000h.
  246. --------U-16FF9E-----------------------------
  247. INT 16 U - PC Tools v7+ DESKTOP - ???
  248.     AX = FF9Eh
  249.     DL = ???
  250.         bit 7: ???
  251.         bits 6-0: function number??? (00h,01h,other)
  252.     ???
  253. Return: ???
  254. --------U-16FFA1-----------------------------
  255. INT 16 U - PC Tools v7+ DESKTOP - ???
  256.     AX = FFA1h
  257.     ???
  258. Return: ???
  259. Note:    same as AX=FFA2h, except ??? set to FFh
  260. SeeAlso: AX=FFA2h
  261. --------U-16FFA2-----------------------------
  262. INT 16 U - PC Tools v7+ DESKTOP - ???
  263.     AX = FFA2h
  264.     ???
  265. Return: ???
  266. Note:    calls AX=FFC7h (remove window) and AX=FFFDh
  267. SeeAlso: AX=FFA1h,AX=FFC7h,AX=FFFDh
  268. --------y-16FFA3BX0000-----------------------
  269. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - INSTALLATION CHECK
  270.     AX = FFA3h
  271.     BX = 0000h
  272.     CX = 0000h
  273. Return: AX = segment of resident code
  274.     BX = 5555h
  275.     CX = 5555h
  276. Note:    also supported by DOS 6 UNDELETE which is licensed from PC Tools
  277. SeeAlso: INT 21/AH=3Fh"NB.SYS",INT 21/AX=4101h,INT 2F/AX=6284h
  278. --------y-16FFA3BX0001-----------------------
  279. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  280.     AX = FFA3h
  281.     BX = 0001h
  282.     CX = 0001h
  283. Return: AX:BX -> ???
  284.     CX = BX
  285. --------y-16FFA3BX0002-----------------------
  286. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  287.     AX = FFA3h
  288.     BX = 0002h
  289.     CX = 0002h
  290. Return: AX = ??? (0 or 1)
  291.     CX = BX = AX
  292. --------y-16FFA3BX0003-----------------------
  293. INT 16 U - PC Tools v7-8 DATAMON, v9+ DPROTECT - GET ???
  294.     AX = FFA3h
  295.     BX = 0003h
  296.     CX = 0003h
  297. Return: AX = ??? (0 or 1)
  298.     CX = BX = AX
  299. --------y-16FFA3BX0004-----------------------
  300. INT 16 U - PC Tools v7+ DATAMON - SET ??? FLAG
  301.     AX = FFA3h
  302.     BX = 0004h
  303.     CX = 0004h
  304. SeeAlso: AX=FFA3h/BX=0005h
  305. --------y-16FFA3BX0005-----------------------
  306. INT 16 U - PC Tools v7+ DATAMON - CLEAR ??? FLAG
  307.     AX = FFA3h
  308.     BX = 0005h
  309.     CX = 0005h
  310. SeeAlso: AX=FFA3h/BX=0004h
  311. --------y-16FFA3BX0006-----------------------
  312. INT 16 U - PC Tools v7+ DATAMON - SET PSP SEGMENT ???
  313.     AX = FFA3h
  314.     BX = 0006h
  315.     CX = 0006h
  316.     DX = current PSP segment as known to DOS??? or 0000h
  317. --------d-16FFA3BXFFA3-----------------------
  318. INT 16 U - PC Tools v9 DSKLIGHT - INSTALLATION CHECK
  319.     AX = FFA3h
  320.     BX = FFA3h
  321.     CX = FFA3h
  322. Return: BX = CX = 5555h if installed
  323.         AX = resident code segment
  324. Program: DSKLIGHT is a TSR included with PC Tools v9+ which displays a disk-
  325.       access indicator on the screen; in v7 and v8, this function was
  326.       provided by DATAMON
  327. Note:    DSKLIGHT chains to the previous handler if BX or CX is not FFA3h
  328. --------U-16FFA4-----------------------------
  329. INT 16 U - PC Tools v7-8 DESKTOP - ???
  330.     AX = FFA4h
  331. Return: ???
  332. Notes:    available even when not popped up
  333.     sets unknown flag if ??? conditions met
  334. SeeAlso: AX=FEA4h
  335. --------c-16FFA5CX1111-----------------------
  336. INT 16 - PC-Cache v6+ - INSTALLATION CHECK
  337.     AX = FFA5h
  338.     CX = 1111h
  339. Return: CH = 00h if installed
  340.         ES:DI -> internal data (see #0517)
  341.         CL = cache state
  342.         01h enabled
  343.         02h disabled
  344. SeeAlso: INT 13/AH=27h,INT 13/AH=A0h,INT 21/AH=2Bh/CX=4358h
  345.  
  346. Format of PC-Cache internal data:
  347. Offset    Size    Description    (Table 0517)
  348. -1Ch 20 BYTEs    cached drive list, one byte per drive A: to T:
  349.         each byte is either blank (20h) or drive letter (41h-54h)
  350.  -8    BYTE    ???
  351.  -7    WORD    number of physical transfers (scaled down to 0000h-7FFFh)
  352.  -5    WORD    number of saved transfers (scaled down to 0000h-7FFFh)
  353.  -3   3 BYTEs    ???
  354. --------c-16FFA5CXAAAA-----------------------
  355. INT 16 - PC-Cache v6+ - ENABLE DELAYED WRITES
  356.     AX = FFA5h
  357.     CX = AAAAh
  358. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  359. SeeAlso: AX=FFA5h/CX=CCCCh
  360. --------c-16FFA5CXCCCC-----------------------
  361. INT 16 - PC-Cache v6+ - FLUSH CACHE AND DISABLE DELAYED WRITES
  362.     AX = FFA5h
  363.     CX = CCCCh
  364. Return: AX = ??? (apparently either 0000h or sectors_in_cache - 5)
  365. Note:    delayed writes are automatically disabled on EXECing
  366.       (see INT 21/AH=4Bh) a program named either WIN.CO? or DV.E??;
  367.       however, delayed writes are not automatically reenabled upon the
  368.       program's termination in v6.
  369. SeeAlso: AX=FFA5h/CX=AAAAh,AX=FFA5h/CX=FFFFh
  370. --------c-16FFA5CXDDDD-----------------------
  371. INT 16 - PC-Cache v6+ - FLUSH AND DISABLE CACHE
  372.     AX = FFA5h
  373.     CX = DDDDh
  374. SeeAlso: AX=FFA5h/CX=EEEEh,AX=FFA5h/CX=FFFFh
  375. --------c-16FFA5CXEEEE-----------------------
  376. INT 16 - PC-Cache v6+ - ENABLE CACHE
  377.     AX = FFA5h
  378.     CX = EEEEh
  379. SeeAlso: AX=FFA5h/CX=DDDDh
  380. --------c-16FFA5CXFFFF-----------------------
  381. INT 16 - PC-Cache v6+ - FLUSH CACHE
  382.     AX = FFA5h
  383.     CX = FFFFh
  384. SeeAlso: AX=FFA5h/CX=CCCCh,AX=FFA5h/CX=DDDDh,INT 13/AH=A1h
  385. --------U-16FFA6-----------------------------
  386. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  387.     AX = FFA6h
  388. Return: DS:SI -> ???
  389. Note:    available only when popped up
  390. --------U-16FFA7-----------------------------
  391. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ??? PATH
  392.     AX = FFA7h
  393. Return: DS:SI -> ASCIZ path (directory from which PCTools was run???)
  394. --------U-16FFA8-----------------------------
  395. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  396.     AX = FFA8h
  397.     DS:SI -> three consecutive ASCIZ strings for ??? (max 256 bytes total)
  398.     ???
  399. Return: ???
  400. Notes:    available only when popped up
  401.     strings copied into internal buffer, among other actions
  402. --------U-16FFA9-----------------------------
  403. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET VERSION STRING
  404.     AX = FFA9h
  405. Return: DS:SI -> version string
  406. --------U-16FFAA-----------------------------
  407. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  408.     AX = FFAAh
  409.     ???
  410. Return: ???
  411. Note:    available only when popped up
  412. --------U-16FFAB-----------------------------
  413. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET EDITOR SETTINGS???
  414.     AX = FFABh
  415. Return: DS:SI -> editor setting strings???
  416. --------U-16FFAC-----------------------------
  417. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  418.     AX = FFACh
  419.     DL = ???
  420. Note:    available only when popped up
  421. --------U-16FFAD-----------------------------
  422. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  423.     AX = FFADh
  424.     DL = ???
  425. --------U-16FFAE-----------------------------
  426. INT 16 U - PC Tools v6.0-8.0 DESKTOP - GET ???
  427.     AX = FFAEh
  428. Return: AL = ???
  429. --------U-16FFAF-----------------------------
  430. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  431.     AX = FFAFh
  432.     DL = ???
  433. --------U-16FFB0-----------------------------
  434. INT 16 U - PC Tools v6.0-8.0 DESKTOP - SET ???
  435.     AX = FFB0h
  436.     BL = ???
  437. --------U-16FFB1-----------------------------
  438. INT 16 U - PC Tools v6.0-8.0 DESKTOP - ???
  439.     AX = FFB1h
  440.     ???
  441. Return: ???
  442. --------U-16FFB2-----------------------------
  443. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  444.     AX = FFB2h
  445. Return: DS:SI -> ???
  446. --------U-16FFB3-----------------------------
  447. INT 16 U - PC Tools v5.5-8.0 DESKTOP - ???
  448.     AX = FFB3h
  449.     ???
  450. Return: ???
  451. Note:    available only when popped up
  452. --------U-16FFB4-----------------------------
  453. INT 16 U - PC Tools v5.5-8.0 DESKTOP - SET ??? FLAG
  454.     AX = FFB4h
  455. Note:    available only when popped up
  456. SeeAlso: AX=FFBBh
  457. --------U-16FFB5-----------------------------
  458. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET WINDOW PARAMETERS
  459.     AX = FFB5h
  460.     BX = window specifier (000Fh to 0019h) (see #0518)
  461.     DX = 0000h get, nonzero = set
  462.     ES:DI -> window parameter buffer (see #0519)
  463. SeeAlso: AX=FFCBh
  464.  
  465. (Table 0518)
  466. Values for PC Tools DESKTOP window specifier:
  467.  000Fh    comm/FAX
  468.  0014h    hotkey selection
  469.  0015h    ASCII table
  470.  0016h    system colors menu
  471.  
  472. Format of PC Tools DESKTOP window parameters:
  473. Offset    Size    Description    (Table 0519)
  474.  00h    BYTE    rows in window, not counting frame
  475.  01h    BYTE    columns in window, not counting frame
  476.  02h    BYTE    row number of top of window
  477.  03h    BYTE    2*column number of left of window
  478.  04h    BYTE    character attribute for ???
  479.  05h    BYTE    character attribute for background/border
  480.  06h    BYTE    character attribute for ???
  481.  07h    DWORD    pointer to ??? on screen
  482.  0Bh  4 BYTEs    ???
  483.  0Fh    BYTE    nonzero if window may be resized
  484. Note:    if running in monochrome mode, character attributes at offsets 04h to
  485.       06h are stored unchanged, but attributes other than 07h, 0Fh, or 70h
  486.       are changed to 07h on reading
  487. --------U-16FFB6-----------------------------
  488. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET ???
  489.     AX = FFB6h
  490. Return: AH = ???
  491.     AL = ???
  492. --------U-16FFB7-----------------------------
  493. INT 16 U - PC Tools v5.5-8.0 DESKTOP - GET/SET ???
  494.     AX = FFB7h
  495.     BX = direction
  496.         0000h copy to buffer
  497.         else  copy from buffer
  498.     DS:SI -> 70-byte buffer with ???
  499. Return: data copied
  500. Note:    available only when popped up under v6.0+
  501. --------U-16FFB8-----------------------------
  502. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET/SET???
  503.     AX = FFB8h
  504.     BH = subfunction
  505.         00h get
  506.         Return: BL = old value of ???
  507.             CL = old value of ??? (v6.0+)
  508.             CH = old value of ??? (v6.0+)
  509.         nonzero set
  510.         BL = new value for ???
  511.         CL = new value for ??? (v6.0+)
  512.         CH = new value for ??? (v6.0+)
  513.         DH = ???
  514.         Return: AL = old value replaced by CL (v6.0+)
  515.             AH = old value replaced by CH (v6.0+)
  516. --------U-16FFB9-----------------------------
  517. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  518.     AX = FFB9h
  519.     ???
  520. Return: AX = ???
  521.     CX = ???
  522.     DS:SI -> ???
  523.     ES:DI -> ???
  524. --------U-16FFBA-----------------------------
  525. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  526.     AX = FFBAh
  527.     ???
  528. Return: AX = ???
  529. Note:    available only when popped up
  530. --------U-16FFBB-----------------------------
  531. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLEAR ??? FLAG
  532.     AX = FFBBh
  533. Note:    available only when popped up
  534. SeeAlso: AX=FFB4h
  535. --------U-16FFBC-----------------------------
  536. INT 16 U - PC Tools v5.1-8.0 DESKTOP - RESTORE ORIGINAL SCREEN???
  537.     AX = FFBCh
  538. --------U-16FFBD-----------------------------
  539. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ??? DATABASE INDEXING MESSAGES
  540.     AX = FFBDh
  541.     ???
  542. Return: ???
  543. --------U-16FFBE-----------------------------
  544. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  545.     AX = FFBEh
  546.     ???
  547. Return: ???
  548. Note:    available only when popped up
  549. --------U-16FFBF-----------------------------
  550. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  551.     AX = FFBFh
  552.     BX = DOS file handle to write on
  553.     ???
  554. Return: ???
  555. Note:    available only when popped up
  556. --------U-16FFC0-----------------------------
  557. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  558.     AX = FFC0h
  559.     ???
  560. Return: AX = 0000h if successful
  561.     AX = FFFFh on error
  562. Note:    available only when popped up
  563. --------U-16FFC1-----------------------------
  564. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  565.     AX = FFC1h
  566.     BL = ???
  567.     ES:DI -> data structure (see #0520)
  568.     ???
  569. Return: AX = ???
  570. Note:    available only when popped up
  571. SeeAlso: AX=FFC2h,AX=FFC3h
  572.  
  573. Format of PC Tools DESKTOP data structure:
  574. Offset    Size    Description    (Table 0520)
  575.  00h    WORD    ???
  576.  02h    WORD    ???
  577.  04h    WORD    ???
  578.  06h    WORD    ???
  579.  08h    WORD    ???
  580.  0Ah    BYTE    ???
  581.  0Bh    BYTE    ??? (zero/nonzero)
  582. ---v7.1---
  583.  0Ch    WORD    ???
  584.  0Eh    BYTE    ???
  585.  0Fh    WORD    ???
  586.  11h    WORD    ???
  587.     ???
  588. --------U-16FFC2-----------------------------
  589. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  590.     AX = FFC2h
  591.     BL = ???
  592.     ES:DI -> data structure (see #0520)
  593.     ???
  594. Return: AH = ???
  595.     CX = ???
  596.     DH = ???
  597.     DL = ???
  598. Note:    available only when popped up
  599. SeeAlso: AX=FFC1h,AX=FFC3h
  600. --------U-16FFC3-----------------------------
  601. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  602.     AX = FFC3h
  603.     BL = ???
  604.     ES:DI -> data structure (see #0520)
  605.     ???
  606. Return: AH = ???
  607.     CX = ???
  608.     DH = ???
  609.     DL = ???
  610. Note:    available only when popped up
  611. SeeAlso: AX=FFC1h,AX=FFC2h
  612. --------U-16FFC4-----------------------------
  613. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  614.     AX = FFC4h
  615. Return: AL = ???
  616.     BX = segment of scratch space???
  617.     CX = segment of stored screen data (section covered by window???)
  618.     DX = segment of window parameters for ???
  619.     ES:BP -> ???
  620. Note:    available only when popped up in versions prior to 6.0
  621. --------U-16FFC5-----------------------------
  622. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK WHETHER DESKTOP LOADED RESIDENT
  623.     AX = FFC5h
  624. Return: BL = Desktop state
  625.         00h if nonresident
  626.         nonzero if loaded resident
  627. Note:    available only when popped up; should call AX=FFEFh first to ensure
  628.       that DESKTOP is active
  629. SeeAlso: AX=FFEFh,AX=FFF3h
  630. --------U-16FFC6-----------------------------
  631. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  632.     AX = FFC6h
  633.     BL = new value for ???
  634. --------U-16FFC7-----------------------------
  635. INT 16 U - PC Tools v5.1-8.0 DESKTOP - REMOVE WINDOW
  636.     AX = FFC7h
  637.     ???
  638. Return: ???
  639. --------U-16FFC8-----------------------------
  640. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  641.     AX = FFC8h
  642. Return: DS:SI -> ???
  643. Note:    valid only while popped up
  644. --------U-16FFC9-----------------------------
  645. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY DATA TO CLIPBOARD
  646.     AX = FFC9h
  647.     DS:SI -> characters to store in clipboard
  648.     CX = size in bytes
  649. Return: CF set on error
  650. Notes:    available only when popped up
  651.     while copying, bytes of 00h and 0Ah are skipped
  652. --------U-16FFCA-----------------------------
  653. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  654.     AX = FFCAh
  655.     DX = ???
  656. Return: AX destroyed
  657. Note:    available only when popped up
  658. --------U-16FFCB-----------------------------
  659. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SELECT WINDOW PARAMETERS???
  660.     AX = FFCBh
  661.     DX = window specifier???
  662. Return: AX destroyed
  663. Note:    available only when popped up
  664. SeeAlso: AX=FFB5h
  665. --------U-16FFCC-----------------------------
  666. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY ASCIZ STRING CENTERED IN WINDOW
  667.     AX = FFCCh
  668.     DS:SI -> ASCIZ string
  669. Return: AX = ???
  670.     CX = ???
  671.     ES:DI -> address past last character displayed (v5.1/5.5)
  672.           -> ??? on menu bar (v6.0)
  673. --------U-16FFCD-----------------------------
  674. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  675.     AX = FFCDh
  676.     DS:DX -> ???
  677. Return: ???
  678. Note:    available only when popped up
  679. --------U-16FFCE-----------------------------
  680. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ??? DELAYS
  681.     AX = FFCEh
  682.     CX = ???
  683. Return: nothing???
  684. --------U-16FFCF-----------------------------
  685. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CLOSE PRINTER/PRINT FILE
  686.     AX = FFCFh
  687. Note:    available only when popped up
  688. --------U-16FFD0-----------------------------
  689. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO PRINT???
  690.     AX = FFD0h
  691.     ???
  692. Return: ???
  693. Note:    available only when popped up
  694. --------U-16FFD1-----------------------------
  695. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY PRINT OPTIONS MENU
  696.     AX = FFD1h
  697. Return: BX = number of copies
  698.     DX = destination
  699.         00h cancel
  700.         01h LPT1
  701.         02h LPT2
  702.         03h LPT3
  703.         04h COM1
  704.         05h COM2
  705.         06h disk file
  706. Note:    available only when popped up
  707. --------U-16FFD2-----------------------------
  708. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  709.     AX = FFD2h
  710.     BX = ???
  711. Return: BL = ???
  712. Note:    available only when popped up
  713. --------U-16FFD3-----------------------------
  714. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  715.     AX = FFD3h
  716.     DS:SI -> 92-byte data record for ???
  717. Return: ???
  718. SeeAlso: AX=FED3h
  719. --------U-16FFD4BH3C-------------------------
  720. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CREATE/OPEN/DELETE FILE
  721.     AX = FFD4h
  722.     BH = 3Ch create file (with no attributes)
  723.          3Dh open file
  724.          41h delete file
  725.     BL = access mode
  726.          00h read only
  727.          01h write only
  728.          02h read/write
  729.     DS:SI -> ASCIZ filename
  730. Return: BX = file handle
  731.         0000h on error
  732. Note:    operation is attempted in (in order) the directory from which the
  733.       desktop was started/run???, the directory specified with the
  734.       filename, X:\PCTOOLS\, and X:\
  735. --------U-16FFD5-----------------------------
  736. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  737.     AX = FFD5h
  738.     ???
  739. Return: ???
  740. Note:    available only when popped up
  741. --------U-16FFD6-----------------------------
  742. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  743.     AX = FFD6h
  744.     BX = ???
  745.     CX = ???
  746.     DX = offset in ???
  747.     ???
  748. Return: ???
  749. Note:    available only when popped up
  750. --------U-16FFD7-----------------------------
  751. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  752.     AX = FFD7h
  753.     ???
  754. Return: BL = ???
  755. Note:    available only when popped up
  756. --------U-16FFD8-----------------------------
  757. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SAFE CREATE FILE
  758.     AX = FFD8h
  759.     DS:BX -> ASCIZ filename
  760. Return: BX = file handle
  761.         0000h on error
  762. Note:    pops up confirmation menu if file already exists
  763.     only available when popped up???
  764. --------U-16FFD9-----------------------------
  765. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  766.     AX = FFD9h
  767. Return: AX = ???
  768. Note:    available only when popped up
  769. --------U-16FFDA-----------------------------
  770. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET NAME OF LAST FILE OPENED
  771.     AX = FFDAh
  772.     DS:SI -> ??? (v5.1/5.5 only)
  773. Return: DS:SI -> filename
  774. --------U-16FFDB-----------------------------
  775. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  776.     AX = FFDBh
  777.     BL = ???
  778. Note:    available only when popped up
  779. --------U-16FFDC-----------------------------
  780. INT 16 U - PC Tools v5.1-8.0 DESKTOP - UNHOOK
  781.     AX = FFDCh
  782. Return: interrupt vectors 09h, 10h (v6.0+), 16h, 1Ch, and 21h restored to
  783.       original values
  784. Index:    uninstall;PC Tools DESKTOP
  785. --------U-16FFDDBX0000-----------------------
  786. INT 16 U - PC Tools v5.1+ PCShell API - INSTALLATION CHECK
  787.     AX = FFDDh
  788.     BX = 0000h
  789. Return: CX = 5555h
  790.     DX = 5555h if PCShell installed in resident mode
  791. --------U-16FFDDBX0001-----------------------
  792. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  793.     AX = FFDDh
  794.     BX = 0001h
  795. Return: CF clear if request successful (PCShell will pop up)
  796.     CF set on error
  797. SeeAlso: AX=FFDDh/BX=0003h
  798. --------U-16FFDDBX0002-----------------------
  799. INT 16 U - PC Tools v5.1-5.5 PCShell API - GET ???
  800.     AX = FFDDh
  801.     BX = 0002h
  802. Return: AL =
  803.         00h ???
  804.         01h ???
  805. Note:    PCShell v6.0+ displays the error message "Incorrect PCRUN version",
  806.       awaits a keystroke, and aborts the current process
  807. --------U-16FFDDBX0003-----------------------
  808. INT 16 U - PC Tools v5.1+ PCShell API - REQUEST POP-UP
  809.     AX = FFDDh
  810.     BX = 0003h
  811. SeeAlso: AX=FFDDh/BX=0001h
  812. --------U-16FFDDBX0004-----------------------
  813. INT 16 U - PC Tools v5.1+ PCShell API - GET ???
  814.     AX = FFDDh
  815.     BX = 0004h
  816. Return: CF clear if successful
  817.         DS:SI -> ???
  818. --------U-16FFDDBX0005-----------------------
  819. INT 16 U - PC Tools v5.1+ PCShell API - ???
  820.     AX = FFDDh
  821.     BX = 0005h
  822.     ???
  823. Return: ???
  824. Note:    resets various variables if certain conditions are met
  825. --------U-16FFDDBX0006-----------------------
  826. INT 16 U - PC Tools v5.1+ PCShell API - ???
  827.     AX = FFDDh
  828.     BX = 0006h
  829.     ???
  830. Return: ???
  831. Note:    resets various variables if certain conditions are met
  832. --------U-16FFDDBX0007-----------------------
  833. INT 16 U - PC Tools v5.1+ PCShell API - SET ??? FLAG
  834.     AX = FFDDh
  835.     BX = 0007h
  836. Return: CF clear if successful
  837. SeeAlso: AX=FFDDh/BX=0008h
  838. --------U-16FFDDBX0008-----------------------
  839. INT 16 U - PC Tools v5.1+ PCShell API - CLEAR ??? FLAG
  840.     AX = FFDDh
  841.     BX = 0008h
  842. Return: CF undefined
  843. SeeAlso: AX=FFDDh/BX=0007h
  844. --------U-16FFDDBX0009-----------------------
  845. INT 16 U - PC Tools v6.0+ PCShell API - GET PCRUN PARAMETERS
  846.     AX = FFDDh
  847.     BX = 0009h
  848. Return: CF clear if successful
  849.         DS:SI -> list of pointers (see #0521)
  850.  
  851. Format of PC Tools PCShell returned pointer list:
  852. Offset    Size    Description    (Table 0521)
  853.  00h    WORD    offset of WORD containing ???
  854.  02h    WORD    offset of name of program to execute
  855.  04h    WORD    offset of 80-byte buffer for ???
  856.  06h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  857.  08h    WORD    offset of buffer for ??? (length in WORD preceding buffer)
  858. --------U-16FFDDBX000A-----------------------
  859. INT 16 U - PC Tools v6.0+ PCRUN API - INSTALLATION CHECK
  860.     AX = FFDDh
  861.     BX = 000Ah
  862. Return: CX = 5555h if running
  863.     DX = 5555h
  864. Note:    also sets a flag
  865. --------U-16FFDDBX000B-----------------------
  866. INT 16 U - PC Tools v6.0+ PCRUN API - ???
  867.     AX = FFDDh
  868.     BX = 000Bh
  869.     ???
  870. Return: CX = 5555h if PCRUN active
  871.     DX = 5555h
  872. Note:    also clears flag set by AX=FFDDh/BX=000Ah
  873. --------U-16FFDE-----------------------------
  874. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY POPUP MENU
  875.     AX = FFDEh
  876.     DS:DX -> menu description (must be on a paragraph boundary)
  877. Return: AX = ???
  878.         AL seems to be the number of the selected button
  879. Note:    available only when popped up
  880. SeeAlso: AX=FFEEh
  881. --------U-16FFDF-----------------------------
  882. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  883.     AX = FFDFh
  884.     ???
  885. Return: ???
  886. --------U-16FFE0-----------------------------
  887. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  888.     AX = FFE0h
  889.     CX = ???
  890.     DX = ???
  891. Note:    available only when popped up
  892. --------U-16FFE1-----------------------------
  893. INT 16 U - PC Tools v5.1-8.0 DESKTOP - BEEP
  894.     AX = FFE1h
  895. --------U-16FFE2-----------------------------
  896. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  897.     AX = FFE2h
  898.     DX = ???
  899. Return: ???
  900. Note:    available only when popped up
  901. --------U-16FFE3-----------------------------
  902. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PRINT CHARACTER
  903.     AX = FFE3h
  904.     BL = character to print to currently open printer or print file
  905. Return: CF set on error
  906. Note:    available only when popped up
  907. SeeAlso: INT 17/AH=00h
  908. --------U-16FFE4-----------------------------
  909. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  910.     AX = FFE4h
  911.     DX = segment of ???
  912. Return: ???
  913. Note:    available only when popped up
  914. --------U-16FFE5-----------------------------
  915. INT 16 U - PC Tools v5.1-8.0 DESKTOP - POP UP FILE SELECTION MENU
  916.     AX = FFE5h
  917.     DS:SI -> ASCIZ wildcard filespec followed by ASCIZ menu title
  918.     DX = segment of window parameters???
  919. Return: AX = DOS file handle for file
  920.         DS:DX -> filename???
  921.         FFFFh if function cancelled by user
  922. Note:    available only when popped up
  923. SeeAlso: AX=FFDAh
  924. --------U-16FFE6-----------------------------
  925. INT 16 U - PC Tools v5.1-8.0 DESKTOP - CHECK FOR AND GET KEYSTROKE
  926.     AX = FFE6h
  927. Return: AX = 0000h if no key available
  928.          else  BIOS keycode
  929. Notes:    available only when popped up
  930.     invokes INT 28 idle interrupt before checking for key
  931. --------U-16FFE7-----------------------------
  932. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  933.     AX = FFE7h
  934.     BX = segment of ???
  935. Return: ???
  936. Note:    available only when popped up
  937. --------U-16FFE8-----------------------------
  938. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY NUMBER
  939.     AX = FFE8h
  940.     CX = number
  941.     DH = attribute
  942.     DS:SI -> destination for ASCII number
  943. Return: DS:SI buffer filled in with alternating characters and attributes
  944. --------U-16FFE9-----------------------------
  945. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET FILE LIST???
  946.     AX = FFE9h
  947. Return: BX = segment of file/directory list (14 bytes per file, NUL-padded)
  948. Note:    available only when popped up
  949. --------U-16FFEA-----------------------------
  950. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY COUNTED STRING
  951.     AX = FFEAh
  952.     DS:SI -> counted string (count byte followed by string)
  953. Return: ???
  954. Note:    available only when popped up
  955. --------U-16FFEB-----------------------------
  956. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  957.     AX = FFEBh
  958.     ???
  959. Return: ???
  960. --------U-16FFEC-----------------------------
  961. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET KEY
  962.     AX = FFECh
  963.     DS:SI -> FAR routine to ???
  964.     BX = ???
  965.     ???
  966. Return: AX = keystroke
  967.         FFFFh if F10 pressed to go to menu
  968. Notes:    available only when popped up
  969.     invokes INT 28 while waiting for keystroke
  970.     F10 is hotkey to Desktop menu
  971. Index:    hotkeys;PC Tools DESKTOP
  972. --------U-16FFED-----------------------------
  973. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET ???
  974.     AX = FFEDh
  975. Return: AX = ???
  976. Note:    available only when popped up
  977. --------U-16FFEE-----------------------------
  978. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE PULLDOWN MENUS
  979.     AX = FFEEh
  980.     DS:SI -> pulldown menu system description (see #0522)
  981. Return: AX destroyed
  982. Notes:    available only when popped up
  983.     if the accessory does not need any menu items of its own, it should
  984.       call AX=FFFAh instead
  985. SeeAlso: AX=FFF7h,AX=FFFAh
  986.  
  987. Format of PC Tools DESKTOP pulldown menu system description:
  988. Offset    Size    Description    (Table 0522)
  989.  00h    WORD    offset of menu bar contents (counted string)
  990.  02h    WORD    number of items on menu bar
  991.  04h 10 BYTEs    scan codes for hotkeying to each of up to ten menu items
  992.  0Eh 10 BYTEs    which character to highlight in each menu item (01h=first)
  993.  18h    WORD    offset of first menu definition (see #0523)
  994.  1Ah    WORD    offset of second menu definition
  995.     ...
  996.  
  997. Format of PC Tools DESKTOP menu definition:
  998. Offset    Size    Description    (Table 0523)
  999.  00h    WORD    offset of menu contents (see #0524)
  1000.  02h    WORD    number of entries in menu
  1001.  04h    for each entry:
  1002.         Offset    Size    Description
  1003.          00h    BYTE    scancode of Alt-key to invoke entry
  1004.          01h    BYTE    character to highlight (01h=first, etc)
  1005.          02h    WORD    offset of FAR routine to handle selection
  1006.  
  1007. Format of PC Tools DESKTOP menu contents:
  1008. Offset    Size    Description    (Table 0524)
  1009.  00h    BYTE    number of lines in menu
  1010.  01h    BYTE    width of menu
  1011.  02h  N BYTEs    counted strings, one for each line in menu
  1012. --------U-16FFEFCX0000-----------------------
  1013. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INSTALLATION CHECK
  1014.     AX = FFEFh
  1015.     CX = 0000h
  1016. Return: CX = ABCDh if PC Tools DESKTOP.EXE installed
  1017.         BX = segment of resident portion
  1018.         AX = ??? (v5.1/5.5 only)
  1019. SeeAlso: AX=FEEFh,AX=FFC5h,AX=FFF3h
  1020. --------U-16FFF0-----------------------------
  1021. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SET ???
  1022.     AX = FFF0h
  1023.     DX = ???
  1024. Return: AX destroyed
  1025. Note:    available only when popped up
  1026. --------U-16FFF1BX0000-----------------------
  1027. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ALTERNATE INSTALLATION CHECK
  1028.     AX = FFF1h
  1029.     BX = 0000h  leave ??? flag as is
  1030.         nonzero set ??? flag
  1031. Return: CX = 5555h if installed
  1032.     DX = 5555h
  1033. --------U-16FFF2-----------------------------
  1034. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DISPLAY HELP LINE
  1035.     AX = FFF2h
  1036.     DS:SI -> ASCIZ function key label string (each label preceded by '[')
  1037.         or help text
  1038. Return: AX destroyed
  1039. Notes:    available only when popped up
  1040.     if the specified string does not start with '[', it is displayed
  1041.       centered on the bottom line, else the function key labels are shown
  1042. --------U-16FFF3-----------------------------
  1043. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PREPARE TO UNLOAD RESIDENT DESKTOP
  1044.     AX = FFF3h
  1045. Note:    releases any EMS being used; restores video mode, page, and cursor
  1046.       shape; and restores interrupt vectors
  1047. SeeAlso: AX=FFC5h,AX=FFEFh
  1048. Index:    uninstall;PC Tools DESKTOP
  1049. --------U-16FFF4-----------------------------
  1050. INT 16 U - PC Tools v5.1-8.0 DESKTOP - ???
  1051.     AX = FFF4h
  1052.     ???
  1053. Return: ???
  1054. Note:    available only when popped up
  1055. SeeAlso: AX=FFF6h
  1056. --------U-16FFF5-----------------------------
  1057. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET SCREEN ATTRIBUTE ARRAY
  1058.     AX = FFF5h
  1059. Return: ES:BX -> screen attributes data structure (see #0525)
  1060.     AL = ??? (v6.0+)
  1061.  
  1062. Format of PC Tools DESKTOP attribute data structure:
  1063. Offset    Size    Description    (Table 0525)
  1064.  -1    BYTE    attribute for desktop background
  1065.  00h    BYTE    attribute for normal characters on desktop menu
  1066.  01h    BYTE    attribute for highlighted characters on desktop menu
  1067.  02h  5 BYTEs    ???
  1068.  07h    BYTE    attribute for dialog boxes
  1069.  08h 15 BYTEs    ???
  1070.  17h    BYTE    attribute for message boxes
  1071. --------U-16FFF6-----------------------------
  1072. INT 16 U - PC Tools v5.1-8.0 DESKTOP - INVOKE NOTEPAD EDITOR
  1073.     AX = FFF6h
  1074.     DS = segment of editor buffer structure (see #0526)
  1075.     BX = ???
  1076.     DX = segment of window parameters structure (see #0519)
  1077. Return: ???
  1078. Note:    available only when popped up
  1079. SeeAlso: AX=FFF4h
  1080.  
  1081. Format of PC Tools DESKTOP editor buffer structure:
  1082. Offset    Size    Description    (Table 0526)
  1083.  00h    WORD    offset of current cursor position in buffer segment
  1084.  02h  2 BYTEs    ???
  1085.  04h    WORD    offset of beginning of file data in buffer segment
  1086.  06h 10 BYTEs    ???
  1087.  10h  N BYTEs    ASCIZ name of file being edited
  1088. --------U-16FFF7-----------------------------
  1089. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS MENU BAR ENTRY???
  1090.     AX = FFF7h
  1091.     DS:SI -> ???
  1092.     ???
  1093. Return: ???
  1094. Notes:    available only when popped up
  1095.     performs input processing on the menu bar set up with AX=FFEEh
  1096. SeeAlso: AX=FFEEh,AX=FFFBh
  1097. --------U-16FFF8-----------------------------
  1098. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DRAW EMPTY WINDOW
  1099.     AX = FFF8h
  1100.     DS:0000h -> window parameters structure (see #0519)
  1101.     DS:BX -> DWORD to store address of ??? on screen
  1102. Return: ???
  1103. --------U-16FFF9-----------------------------
  1104. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE SCREEN REFRESH ROUTINE
  1105.     AX = FFF9h
  1106.     ES:BX -> FAR routine to redisplay the utility's window
  1107. Note:    available only when popped up
  1108. --------U-16FFFA-----------------------------
  1109. INT 16 U - PC Tools v5.1-8.0 DESKTOP - DEFINE STANDARD PULLDOWN MENUS
  1110.     AX = FFFAh
  1111. Notes:    available only when popped up
  1112.     adds the "Window" option to the "Desktop" option which is the only one
  1113.       available when no accessories are active.  Unlike AX=FFEEh, no
  1114.       additional menu items are added between "Desktop" and "Window"
  1115. SeeAlso: AX=FFEEh,AX=FFFBh
  1116. --------U-16FFFB-----------------------------
  1117. INT 16 U - PC Tools v5.1-8.0 DESKTOP - PROCESS STANDARD MENU BAR
  1118.     AX = FFFBh
  1119. Return: ???
  1120. Notes:    available only when popped up
  1121.     performs input processing on the standard menu bar set up with AX=FFFAh
  1122. SeeAlso: AX=FFF7h
  1123. --------U-16FFFC-----------------------------
  1124. INT 16 U - PC Tools v5.1-8.0 DESKTOP - GET HOTKEYS AND KEYBOARD VECTOR
  1125.     AX = FFFCh
  1126. Return: ES:BX -> hotkey table (see #0527)
  1127.     DS:DX = original INT 09 vector
  1128.  
  1129. Format of PC Tools DESKTOP hotkey table:
  1130. Offset    Size    Description    (Table 0527)
  1131.  00h  2 BYTEs    scancode/shift state for desktop hotkey
  1132.  02h  2 BYTEs    scancode/shift state for clipboard paste key
  1133.  04h  2 BYTEs    scancode/shift state for clipboard copy key
  1134.  06h  2 BYTEs    scancode/shift state for screen autodial key
  1135. --------U-16FFFD-----------------------------
  1136. INT 16 U - PC Tools v5.1-8.0 DESKTOP - COPY ???
  1137.     AX = FFFDh
  1138. Return: AX destroyed
  1139. Note:    copies 4000 bytes from ??? to ??? under certain circumstances
  1140. SeeAlso: AX=FF91h,AX=FF92h
  1141. --------M-16FFFE-----------------------------
  1142. INT 16 U - PC Tools v5.1-8.0 DESKTOP - SHOW MOUSE CURSOR
  1143.     AX = FFFEh
  1144. SeeAlso: AX=FFFFh,INT 33/AX=0001h
  1145. --------M-16FFFF-----------------------------
  1146. INT 16 U - PC Tools v5.1-8.0 DESKTOP - HIDE MOUSE CURSOR
  1147.     AX = FFFFh
  1148. SeeAlso: AX=FFFEh,INT 33/AX=0002h
  1149. --------P-17----DX0ABC-----------------------
  1150. INT 17 - PRINTER - LPTx v5.x INSTALLATION CHECK
  1151.     DX = 0ABCh
  1152. Return: AX = AAAAh
  1153.     DX = BAAAh
  1154.     ES = code segment of resident portion
  1155. --------P-17----DX0B90-----------------------
  1156. INT 17 - PRINTER - LPTx v6.x INSTALLATION CHECK
  1157.     DX = 0B90h
  1158. Return: DX = ABBBh
  1159.     ES = code segment of resident portion
  1160. --------P-17----DX0B91-----------------------
  1161. INT 17 - PRINTER - LPTx v7.x INSTALLATION CHECK
  1162.     DX = 0B91h
  1163. Return: DX = ABCBh
  1164.     ES = code segment of resident portion
  1165. --------P-17----DX0F5F-----------------------
  1166. INT 17 - PRINTER - LPTx v4.x INSTALLATION CHECK
  1167.     DX = 0F5Fh
  1168. Return: AX = AAAAh
  1169.     DX = F555h
  1170.     ES = code segment of resident portion
  1171. --------B-1700-------------------------------
  1172. INT 17 - PRINTER - WRITE CHARACTER
  1173.     AH = 00h
  1174.     AL = character to write
  1175.     DX = printer number (00h-02h)
  1176. Return: AH = printer status (see #0528)
  1177. SeeAlso: AH=02h,AH=84h"AX",AX=6F02h,AH=F1h,INT 16/AX=FFE3h,INT 1A/AH=11h"NEC"
  1178. SeeAlso: INT 4B/AH=00h
  1179.  
  1180. Bitfields for printer status:
  1181. Bit(s)    Description    (Table 0528)
  1182.  7    not busy
  1183.  6    acknowledge
  1184.  5    out of paper
  1185.  4    selected
  1186.  3    I/O error
  1187.  2-1    unused
  1188.  0    timeout
  1189. Note:    for Tandy 2000, bit 7 indicates printer-busy when set rather than clear
  1190. --------B-1701-------------------------------
  1191. INT 17 - PRINTER - INITIALIZE PORT
  1192.     AH = 01h
  1193.     DX = printer number (00h-02h)
  1194. Return: AH = printer status (see #0528)
  1195. Note:    some printers report that they are ready immediately after
  1196.       initialization when they actually are not; a more reliable result may
  1197.       be obtained by calling AH=02h after a brief delay
  1198. SeeAlso: AH=02h,AH=FFh"PC-MOS",INT 1A/AH=10h"NEC",INT 4B/AH=01h
  1199. --------B-1702-------------------------------
  1200. INT 17 - PRINTER - GET STATUS
  1201.     AH = 02h
  1202.     DX = printer number (00h-02h)
  1203. Return: AH = printer status (see #0528)
  1204. Note:    PRINTFIX from MS-DOS 5.0 hooks this function and always returns AH=90h
  1205. SeeAlso: AH=01h,AH=F2h,INT 1A/AH=12h"NEC",INT 4B/AH=02h
  1206. --------P-1702--DX0000-----------------------
  1207. INT 17 - INSET - INSTALLATION CHECK
  1208.     AH = 02h
  1209.     DX = 0000h
  1210.     CX = 07C3h (1987d)
  1211. Return: CX = 07C2h (1986d) if installed
  1212. Program: INSET is a text/graphics integration program
  1213. --------b-170200BX5050-----------------------
  1214. INT 17 - Enhanced Parallel Port (EPP) BIOS - INSTALLATION CHECK
  1215.     AX = 0200h
  1216.     BX = 5050h ('PP')
  1217.     CH = 45h   ('E')
  1218.     DX = printer port number (00h-02h)
  1219. Return: AH = status
  1220.         00h if installed and port is an enhanced parallel port
  1221.         CX:AL = installed BIOS type
  1222.             5050h:45h ('PPE') if EPP v3.0+ BIOS installed
  1223.             4550h:50h ('EPP') if EPP v1.0 BIOS installed
  1224.         ---EPP 1.0, 3.0---
  1225.         DX:BX -> far entry point to Advanced BIOS (see #0529)
  1226.         ---EPP Revision 7---
  1227.         DX = EPP I/O base address
  1228.         ES:BX -> far entry point to EPP BIOS (see #0529,#0530)
  1229.         03h if installed but specified port not supported
  1230.         CF set
  1231. Program: The Enhanced Parallel Port BIOS provides support for parallel
  1232.       port peripherals using the enhanced modes of the IEEE 1284.
  1233. SeeAlso: AH=E0h,MEM 0040h:0008h,MEM 0040h:00DCh
  1234.  
  1235. (Table 0529)
  1236. Call EPP BIOS entry point with:
  1237.     DL = port number (v1.0)
  1238.     DX = (Revision 7) EPP port I/O base address
  1239.     AH = function
  1240.         00h Query Configuration
  1241.         Return: AH = 00h if successful
  1242.                 AL = IRQ number used by port or FFh if no IRQ
  1243.                 BH = EPP BIOS revision (major in high nybble,
  1244.                   minor in low nybble)
  1245.                 BL = I/O capabilities (see #0532)
  1246.                 ES:DI -> ASCIZ driver information/version text
  1247.                 ---v1.0,v3.0---
  1248.                 CX = I/O port base address for parallel port
  1249.                 ---Revision 7---
  1250.                 CL = EPP chipset code (see #0533)
  1251.                 CH = hardware manufacturer's product code
  1252.         01h Set Mode
  1253.         AL = mode bits (see #0534)
  1254.         Return: AX,BX destroyed
  1255.         02h Get Mode
  1256.         Return: AL = mode bits (see also #0534)
  1257.                 bit 7: EPP port interrupts enabled
  1258.             AH = 00h
  1259.             CF clear
  1260.             BX destroyed
  1261.         03h Interrupt Control
  1262.         AL = subfunction
  1263.             00h enable parallel port interrupts
  1264.             01h disable parallel port interrupts
  1265.         Return: AH = status (00h,05h,06h) (see also #0531)
  1266.         04h EPP Reset
  1267.         Return: AH = 00h if successful
  1268.             AL destroyed
  1269.         05h perform Address-Write/Device-Select I/O cycle
  1270.         AL = device address
  1271.         Return: AH = status
  1272.             AL destroyed
  1273.         06h perform Address-Read I/O cycle
  1274.         Return: AL = returned address/device data
  1275.             AH = status
  1276.         07h write byte
  1277.         AL = data byte to write
  1278.         Return: AH = status
  1279.         08h output block of data
  1280.         DS:SI -> block of data to be sent to parallel port
  1281.         CX = number of bytes to output
  1282.         Return: AH = status (see #0531)
  1283.             CX = number of unsent bytes
  1284.         09h read byte of data
  1285.         Return: AH = status (see #0531)
  1286.             AL = byte read from parallel port
  1287.         0Ah read block of data
  1288.         ES:DI -> buffer for received data
  1289.         CX = number of bytes to read from paralle port
  1290.         Return: AH = status (see #0531)
  1291.             ES:DI buffer filled if successful
  1292.             CX = number of bytes not transferred
  1293.         0Bh Address/Byte-Read
  1294.         AL = device address
  1295.         Return: AH = status (see #0531)
  1296.             AL = byte read if successful
  1297.         0Ch Address/Byte-Write
  1298.         AL = device address
  1299.         DH = data byte (v1.0,v3.0)
  1300.         CL = data byte (Revision 7)
  1301.         Return: AH = status (see #0531)
  1302.         0Dh Address/Block-Read
  1303.         AL = device address
  1304.         ES:DI -> buffer for received data
  1305.         CX = number of bytes to read
  1306.         Return: AH = status (see #0531)
  1307.             CX = number of bytes NOT transferred
  1308.         0Eh Address/Block-Write
  1309.         AL = device address
  1310.         ES:DI -> data to be sent (v1.0,v3.0)
  1311.         DS:SI -> data to be send (Revision 7)
  1312.         CX = number of bytes to write
  1313.         Return: AH = status (see #0531)
  1314.             CX = number of bytes NOT transferred
  1315.         0Fh Lock Port
  1316.         AL = multiplexor port number
  1317.             bits 7-4: daisy chain port number (1-8)
  1318.             bits 3-0: mux device port number (1-8)
  1319.         Return: AH = status (00h,03h,05h) (see #0531)
  1320.         10h Unlock Port
  1321.         AL = multiplexor port number
  1322.             bits 7-4: daisy chain port number (1-8)
  1323.             bits 3-0: mux device port number (1-8)
  1324.         Return: AH = status (00h,03h,05h) (see #0531)
  1325.         11h Device Interrupt
  1326.         AL = multiplexor port number
  1327.             00h if no multiplexor, else mux device port (01h-08h)
  1328.         CH = subfunction
  1329.             00h disable device interrupts
  1330.             01h enable device interrupt
  1331.             ES:DI -> interrupt event handler
  1332.         Return: AH = status (00h,03h,05h,06h) (see #0531)
  1333.         Note:    AMI BIOS v1.00.12.AX1T uses AL to specify en/disabled
  1334.               and ignores multiplexor port number; it also always
  1335.               sets INT 0F to the address specified in ES:DI
  1336.         12h Real-Time Mode
  1337.         AL = subfunction
  1338.             00h check whether any real-time devices present
  1339.             01h add (advertise) real-time device
  1340.             02h remove real-time device
  1341.         Return: AH = status (00h,05h,06h,07h) (see #0531)
  1342.             AL = real-time devices present? (00h no, 01h yes)
  1343.         Note:    unlike all other functions, this one does not use DL/DX
  1344. Return: AH = status (see #0531)
  1345.     CF clear if successful
  1346.     CF set on error
  1347.     BX destroyed
  1348. SeeAlso: #0530
  1349.  
  1350. (Table 0530)
  1351. Call EPP BIOS (Revision 7) entry point multiplexor functions with:
  1352.     DX = EPP port base I/O address
  1353.     AH = function
  1354.         40h Query Mux
  1355.         Return: AH = status (see #0531)
  1356.             AL = currently-selected port
  1357.             CH = status flags
  1358.                 bit 0: channel locked
  1359.                 bit 1: interrupt pending
  1360.             BX destroyed
  1361.         41h Query Device Port
  1362.         AL = EPP multiplex device port (1-8)
  1363.         Return: AH = status (see #0531)
  1364.             CH = status flags (see #0535)
  1365.             BX = EPP product/device ID (0000h if undefined)
  1366.         42h Set Product ID
  1367.         AL = EPP multiplex device port (1-8)
  1368.         CX = EPP product ID
  1369.         Return: AH = status (see #0531)
  1370.             BX destroyed
  1371.         50h Query Daisy Chain
  1372.         AL = EPP multiplexor device port (1-8)
  1373.         Return: AH = status (see #0531)
  1374.             CH = status flags
  1375.                 bit 0: channel locked
  1376.                 bit 1: interrupt pending
  1377.             BL = currently-selected device
  1378.             BH = EPP daisy chain revision (high nybble = major)
  1379.             CL = daisy-chain depth (00h if no daisy chain)
  1380.             ES:DI -> ASCIZ driver vendor identification string
  1381.         51h Rescan Daisy Chain (dynamically reassign port numbers)
  1382.         AL = EPP multiplexor device port (1-8)
  1383.         Return: AH = status (see #0531)
  1384.             BX destroyed
  1385. Note:    these functions are only valid if a port multiplexor or daisy chain
  1386.       is present
  1387. SeeAlso: #0529,INT 2D/AL=DCh
  1388.  
  1389. (Table 0531)
  1390. Values for EPP BIOS function status:
  1391.  00h    successful
  1392.  02h    unsupported command/feature
  1393.  03h    unsupported parallel port
  1394.  05h    unsupported in current mode
  1395.  06h    invalid subfunction
  1396.  07h    already ???
  1397.  20h    (AMI) multiplexor not present
  1398.  40h    multiplexor not present
  1399.  41h    multiplexor currently locked
  1400.  80h    I/O timeout
  1401.  FFh    invalid/unsupported function
  1402. SeeAlso: #0529,#0530
  1403.  
  1404. Bitfields for EPP (v3.0, Revision 7) I/O capabilities:
  1405. Bit(s)    Description    (Table 0532)
  1406.  0    multiplexor present
  1407.  1    PS/2 bi-directional capable
  1408.  2    daisy chain present
  1409.  3    ECP capable
  1410.  4    EPP software emulation supported
  1411.  5    EPP capable
  1412.  6    fast Centronics supported
  1413.  7    standard EPP I/O map
  1414. SeeAlso: #0529
  1415.  
  1416. (Table 0533)
  1417. Values for EPP (Revision 7) chipset code:
  1418.  00h    Intel SL
  1419.  01h    FarPoint Communications
  1420.  02h    SMC
  1421.  03h    Chips&Technologies
  1422.  04h    Western Digital
  1423.  05h    National Semiconductor
  1424. SeeAlso: #0529
  1425.  
  1426. Bitfields for EPP BIOS mode bits:
  1427. Bit(s)    Description    (Table 0534)
  1428.  0    set compatibility mode
  1429.  1    set bi-directional mode
  1430.  2    set EPP mode
  1431. ---Revision 7---
  1432.  3    set ECP mode
  1433.  4    set EPP software emulation
  1434.  5    set fast Centronics mode
  1435.  6-7 reserved (0)
  1436. SeeAlso: #0529,#M051
  1437.  
  1438. Bitfields for EPP BIOS multiplex status flags:
  1439. Bit(s)    Description    (Table 0535)
  1440.  0    port is selected
  1441.  1    port is locked
  1442.  2    interrupts are enabled
  1443.  3    interrupt pending
  1444. SeeAlso: #0530
  1445. --------P-1703-------------------------------
  1446. INT 17 U - Emulaser ELTSR - INSTALL INTERRUPT HANDLERS
  1447.     AH = 03h
  1448. Return: BX = ???
  1449.     CX = ???
  1450. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  1451.       Vertisoft Systems, Inc.
  1452. SeeAlso: AH=04h"Emulaser",AH=0Eh,INT 1A/AH=E5h
  1453. --------c-1703-------------------------------
  1454. INT 17 - PC-MOS/386 v5.01 - PRINT SPOOLER - PRINT STRING
  1455.     AH = 03h
  1456.     DX = printer port number
  1457.     CX = number of characters to print
  1458.     DS:SI -> string
  1459. Return: AH = printer status (see #0528)
  1460.     CX = number of characters actually printed
  1461. Desc:    send an entire string of chars to the print spooler with a single call
  1462. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  1463.       operating system by The Software Link, Inc.
  1464. SeeAlso: AH=00h,AH=01h,AH=02h,AH=FFh"PC-MOS"
  1465. --------c-1703--BX5A00-----------------------
  1466. INT 17 - DMP Print Spooler v2.03 - INSTALLATION CHECK
  1467.     AH = 03h
  1468.     BX = 5A00h
  1469. Return: AX = 5ACBh
  1470.     DI = 0000h
  1471.     ES = DMP code segment (also data segment)
  1472. Program: DMP is a Printer driver/spooler, by DMP (USA), available on the
  1473.       PCTODAY disk, volume 10, March 1991
  1474. --------N-170300-----------------------------
  1475. INT 17 - DOSISODE to WATTCP TSR Interface - "socket"
  1476.     AX = 0300h
  1477.     CX = type of socket from  socket( domain, type, protocol )
  1478.     DX = local identifier of socket (0 - 31)
  1479. Return: AX = 0000h success
  1480.         CX = segment of 4500 byte transfer buffer
  1481.         DX = offset of 4500 byte transfer buffer
  1482.        = FFFFH failure
  1483.         CX = error code
  1484.         ENFILE        23
  1485. Program: DOSISODE is the ISO developers environment which has been ported to
  1486.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  1487.       Currently it allows a maximum of 6 open sockets.
  1488. Note:    this function will initialize the interface the first time it is
  1489.       called
  1490. SeeAlso: AX=0400h"DOSISODE",AX=0600h"DOSISODE",AX=0800h"DOSISODE"
  1491. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  1492. --------P-1704-------------------------------
  1493. INT 17 U - Emulaser ELTSR - BEGIN CAPTURING OUTPUT
  1494.     AH = 04h
  1495. Note:    has no effect unless ELTSR is deactivated (see AX=0503h)
  1496. SeeAlso: AH=03h"Emulaser",AX=0503h,INT 1A/AH=E5h
  1497. --------N-170400-----------------------------
  1498. INT 17 - DOSISODE to WATTCP TSR Interface - "bind"
  1499.     AX = 0400h
  1500. Note:    this function just returns
  1501. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0C00h"DOSISODE"
  1502. --------P-170500-----------------------------
  1503. INT 17 U - Emulaser ELTSR - ???
  1504.     AX = 0500h
  1505.     ???
  1506. Return: AX = unload status (0001h safe to unload, 0002h not safe)
  1507.     BX = ???
  1508.     CX = PSP segment of ELTSR
  1509.     DX = activity flag (0000h disabled, 0001h capturing, 0002h ???printing)
  1510.     SI = ???
  1511.     DI = ???
  1512. SeeAlso: AH=04h,INT 1A/AH=E5h
  1513. --------N-170500-----------------------------
  1514. INT 17 - DOSISODE to WATTCP TSR Interface - "connect"
  1515.     AX = 0500h
  1516. SeeAlso: AX=0400h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  1517. --------P-170501-----------------------------
  1518. INT 17 U - Emulaser ELTSR - UNHOOK INTERRUPTS
  1519.     AX = 0501h
  1520. Return: (see AX=0500h)
  1521. Note:    restores interrupt vectors without checking whether they have been
  1522.       hooked by later programs; should only be called if ELTSR reports
  1523.       that it is safe to unload
  1524. SeeAlso: AH=04h,AX=0500h,AX=0503h,INT 1A/AH=E5h
  1525. Index:    uninstall;Emulaser ELTSR
  1526. --------P-170502-----------------------------
  1527. INT 17 U - Emulaser ELTSR - SET ???
  1528.     AX = 0502h
  1529.     BL = Emulaser port (31h = LPT1, 32h = LPT2, 33h = LPT3)
  1530.     CL = ???
  1531.     DL = ???
  1532. Return: (see AX=0500h)
  1533. SeeAlso: AH=04h,AX=0500h,INT 1A/AH=E5h
  1534. --------P-170503-----------------------------
  1535. INT 17 U - Emulaser ELTSR - DEACTIVATE???
  1536.     AX = 0503h
  1537. Return: (see AX=0500h)
  1538. SeeAlso: AH=04h,AX=0500h,AX=0501h,INT 1A/AH=E5h
  1539. --------P-1706-------------------------------
  1540. INT 17 U - Emulaser ELTSR - ???
  1541.     AH = 06h
  1542.     ???
  1543. Return: ???
  1544. SeeAlso: AX=0500h,AX=0503h,AH=07h"ELTSR",INT 1A/AH=E5h
  1545. --------N-170600-----------------------------
  1546. INT 17 - DOSISODE to WATTCP TSR Interface - "listen"
  1547.     AX = 0600h
  1548. Note:    this function just returns
  1549. SeeAlso: AX=0300h"DOSISODE",AX=0700h"DOSISODE",AX=0C00h"DOSISODE"
  1550. SeeAlso: AX=0E00h"DOSISODE"
  1551. --------P-1707-------------------------------
  1552. INT 17 U - Emulaser ELTSR - OPEN CAPTURE FILE
  1553.     AH = 07h
  1554.     ES:DX -> ASCIZ filename to be opened
  1555. Return: ???
  1556. Note:    new output will be appended to the specified file
  1557. SeeAlso: AH=08h,INT 1A/AH=E5h
  1558. --------N-170700-----------------------------
  1559. INT 17 - DOSISODE to WATTCP TSR Interface - "accept"
  1560.     AX = 0700h
  1561. Note:    this function just returns
  1562. SeeAlso: AX=0600h"DOSISODE",AX=0800h"DOSISODE",AX=0C00h"DOSISODE"
  1563. --------P-1708-------------------------------
  1564. INT 17 U - Emulaser ELTSR - CLOSE CAPTURE FILE
  1565.     AH = 08h
  1566.     ???
  1567. Return: ???
  1568. Desc:    close the file previously opened by function 07h
  1569. SeeAlso: AH=07h,INT 1A/AH=E5h
  1570. --------N-170800-----------------------------
  1571. INT 17 - DOSISODE to WATTCP TSR Interface - "recvfrom"
  1572.     AX = 0800h
  1573. SeeAlso: AX=0500h"DOSISODE",AX=0900h"DOSISODE",AX=0A00h"DOSISODE"
  1574. --------P-1709-------------------------------
  1575. INT 17 U - Emulaser ELTSR - PRINT CAPTURE FILE???
  1576.     AH = 09h
  1577.     BX = ???
  1578.     CX = ???
  1579.     DX = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  1580. Return: AX = status
  1581.         00h successful
  1582.         FFh failed
  1583. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  1584.       Vertisoft Systems, Inc.
  1585. Note:    this function calls through to INT 1A/AX=E401h, and thus requires
  1586.       that either ELSPL or Disk Spool II be installed
  1587. SeeAlso: AH=0Ah,INT 1A/AX=E401h,INT 1A/AH=E5h
  1588. --------N-170900-----------------------------
  1589. INT 17 - DOSISODE to WATTCP TSR Interface - "sendto"
  1590.     AX = 0900h
  1591. SeeAlso: AX=0700h"DOSISODE",AX=0800h"DOSISODE",AX=0A00h"DOSISODE"
  1592. --------P-170A-------------------------------
  1593. INT 17 U - Emulaser ELTSR - SET ??? FILENAME
  1594.     AH = 0Ah
  1595.     ES:BX -> ??? buffer
  1596.     CX = length of ??? buffer
  1597. Return: ???
  1598. Note:    copies the specified name into the buffer passed to ELSPL as the
  1599.       filename by AH=09h
  1600. SeeAlso: AH=09h,INT 1A/AH=E5h
  1601. --------N-170A00-----------------------------
  1602. INT 17 - DOSISODE to WATTCP TSR Interface - "select"
  1603.     AX = 0A00h
  1604. SeeAlso: AX=0800h"DOSISODE",AX=0B00h"DOSISODE",AX=0E00h"DOSISODE"
  1605. --------P-170B-------------------------------
  1606. INT 17 U - Emulaser ELTSR - GET ???
  1607.     AH = 0Bh
  1608. Return: AX:BX -> ???
  1609. SeeAlso: AH=0Ah,INT 1A/AH=E5h
  1610. --------N-170B00-----------------------------
  1611. INT 17 - DOSISODE to WATTCP TSR Interface - "ioctl"
  1612.     AX = 0B00h
  1613.     DX = local identifier of socket (0 - 31)
  1614. Note:    this function sets the socket into non_block mode
  1615. SeeAlso: AX=0A00h"DOSISODE",AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  1616. --------P-170C-------------------------------
  1617. INT 17 U - Emulaser ELTSR - SET ??? FLAG
  1618.     AH = 0Ch
  1619.     ???
  1620. Return: ???
  1621. SeeAlso: AH=0Bh,INT 1A/AH=E5h
  1622. --------N-170C00-----------------------------
  1623. INT 17 - DOSISODE to WATTCP TSR Interface - "close"
  1624.     AX = 0C00h
  1625. SeeAlso: AX=0300h"DOSISODE",AX=0500h"DOSISODE",AX=0D00h"DOSISODE"
  1626. --------P-170D-------------------------------
  1627. INT 17 U - Emulaser ELTSR - GET TRUE ScrlLk STATE
  1628.     AH = 0Dh
  1629. Return: AX = state (0000h off, 0010h on)
  1630. Desc:    determine the actual state of ScrlLk even when Emulaser is controlling
  1631.       the ScrlLk light as its activity indicator
  1632. SeeAlso: AH=0Ch,INT 16/AH=02h,INT 1A/AH=E5h
  1633. --------N-170D00-----------------------------
  1634. INT 17 - DOSISODE to WATTCP TSR Interface - "shutdown" - SHUTDOWN INTERFACE
  1635.     AX = 0D00h
  1636. Note:    this function is used to shutdown the interface
  1637. SeeAlso: AX=0C00h"DOSISODE",AX=0E00h"DOSISODE"
  1638. --------P-170E-------------------------------
  1639. INT 17 U - Emulaser ELTSR - BACKGROUND PROCESSING
  1640.     AH = 0Eh
  1641. Program: ELTSR is the resident portion of the Emulaser PostScript emulator by
  1642.       Vertisoft Systems, Inc.
  1643. Note:    this function is called by ELTSR on every INT 08 to allow data to be
  1644.       processed in the background, but may also be called by applications
  1645.       to give Emulaser additional CPU time
  1646. SeeAlso: AH=0Dh,INT 1A/AH=E5h
  1647. --------N-170E00-----------------------------
  1648. INT 17 - DOSISODE to WATTCP TSR Interface - INSTALLATION CHECK
  1649.     AX = 0E00h
  1650. Return: CX = 1234h if installed
  1651. Program: DOSISODE is the ISO developers environment which has been ported to
  1652.       DOS and will run with the Waterloo TCP turned into a resident TSR.
  1653.       Currently it allows a maximum of 6 open sockets.
  1654. Note:    this function is used to check if the interface is loaded
  1655. SeeAlso: AX=0300h"DOSISODE",AX=0A00h"DOSISODE"
  1656. --------P-172000-----------------------------
  1657. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - INSTALLATION CHECK
  1658.     AX = 2000h
  1659.     BL = printer number???
  1660. Return: AX = status (see #0536)
  1661.     BX = driver version number (BH=major,BL=minor)
  1662.     CH = ??? (00h)
  1663.     CL = ???
  1664.     DX = ??? (0100h)
  1665. Note:    also enables the remaining printer driver functions (2001h-2007h)
  1666. SeeAlso: AX=2001h,AX=2002h,AX=2003h,AX=2004h,AX=2005h,AX=2006h,AX=2007h
  1667.  
  1668. (Table 0536)
  1669. Values for PC Paint function status:
  1670.  0000h    successful
  1671.  0001h    invalid printer???
  1672.  0002h    ???
  1673.  0003h    invalid subfunction
  1674.  0005h    driver disabled, must call function 00h first
  1675.  0009h    unknown printer error
  1676.  000Bh    printer not selected
  1677.  000Ch    printer out of paper
  1678.  000Eh    error while writing to serial printer
  1679.  000Fh    ???
  1680.  0010h    invalid function number
  1681.  0011h    value out of range
  1682. --------P-172001-----------------------------
  1683. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - SET ??? FLAG
  1684.     AX = 2001h
  1685.     BL = printer number???
  1686. Return: AX = status (see #0536)
  1687. --------P-172002-----------------------------
  1688. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET INFORMATION
  1689.     AX = 2002h
  1690.     BL = printer number???
  1691.     CL = desired information
  1692.         00h printer type
  1693.         Return: ES:DI -> ASCIZ printer name
  1694.         01h paper size
  1695.         DX = size index
  1696.         Return: ES:DI -> ASCIZ paper size description
  1697.         02h ???
  1698.         Return: BX = ???
  1699.         03h printer information???
  1700.         DX = ???
  1701.         ES:BX -> buffer for ??? (min 134 bytes)
  1702. Return: AX = status (see #0536)
  1703. SeeAlso: AX=2000h,AX=2004h
  1704. --------P-172003-----------------------------
  1705. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ???
  1706.     AX = 2003h
  1707.     ES:BX -> ???
  1708. Return: AX = status (see #0536)
  1709. SeeAlso: AX=2000h,AX=2004h
  1710. --------P-172004-----------------------------
  1711. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - GET ???
  1712.     AX = 2004h
  1713.     BL = printer number???
  1714. Return: AX = status (see #0536)
  1715.     ES:DI -> ???
  1716. SeeAlso: AX=2000h,AX=2003h
  1717. --------P-172005-----------------------------
  1718. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE PRINTER TO NEXT PAGE
  1719.     AX = 2005h
  1720.     BL = printer number???
  1721. Return: AX = status (see #0536)
  1722. Note:    this function also clears the flag set by AX=2001h
  1723. SeeAlso: AX=2000h,AX=2001h,AX=2006h
  1724. --------P-172006-----------------------------
  1725. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - ADVANCE TO NEXT PAGE & SHUT DOWN
  1726.     AX = 2006h
  1727.     BL = printer number???
  1728. Return: AX = status (see #0536)
  1729. Note:    this function also clears the flag set by AX=2001h and disables
  1730.       functions other than AX=2000h
  1731. SeeAlso: AX=2000h,AX=2001h,AX=2005h
  1732. --------P-172007-----------------------------
  1733. INT 17 - PC Paint Plus 2.0 - PRINTER DRIVER - UNIMPLEMENTED
  1734.     AX = 2007h
  1735. Return: AX unchanged
  1736. SeeAlso: AX=2000h
  1737. --------N-172400-----------------------------
  1738. INT 17 - Shamrock Software NET.24 v3.11+ - ENABLE/DISABLE API FUNCTIONS
  1739.     AX = 2400h
  1740.     DL = new state
  1741.         00h disabled
  1742.         01h enabled
  1743. Return: DL = 24h if installed
  1744.     DH = minor version number
  1745.     CX = network address of this machine
  1746.     AL = status (see #0537)
  1747. SeeAlso: AX=2403h,INT 16/AX=4500h
  1748.  
  1749. (Table 0537)
  1750. Values for NET.24 function status:
  1751.  00h    successful
  1752.  01h    timeout
  1753.  02h    header error
  1754.  03h    data error
  1755.  04h    busy
  1756.  05h    invalid parameters
  1757. --------N-172401-----------------------------
  1758. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, NO HANDSHAKE
  1759.     AX = 2401h
  1760.     BL = timeout in clock ticks
  1761. Return: AL = status (see #0537)
  1762.     DX:BX -> receive buffer
  1763. SeeAlso: AX=2402h,AX=2404h,AX=2408h
  1764. --------N-172402-----------------------------
  1765. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT BLOCK, NO HANDSHAKE
  1766.     AX = 2402h
  1767.     transmit buffer filled (see AX=2403h)
  1768. Return: AL = status (see #0537)
  1769. SeeAlso: AX=2401h,AX=2403h,AX=2404h,AX=2409h
  1770. --------N-172403-----------------------------
  1771. INT 17 - Shamrock Software NET.24 v3.11+ - GET STATUS AND TRANSMISSION BUFFER
  1772.     AX = 2403h
  1773. Return: AL = status (see #0537)
  1774.     CX = number of characters in receive ring buffer
  1775.     DX:BX -> transmit buffer
  1776. SeeAlso: AX=2400h,AX=2402h
  1777. --------N-172404-----------------------------
  1778. INT 17 - Shamrock Software NET.24 v3.11+ - SEND ACK BLOCK
  1779.     AX = 2404h
  1780.     BX = target address
  1781. Return: AL = status (see #0537)
  1782. SeeAlso: AX=2402h,AX=2405h
  1783. --------N-172405-----------------------------
  1784. INT 17 - Shamrock Software NET.24 v3.11+ - SEND NAK BLOCK
  1785.     AX = 2405h
  1786.     BX = target address
  1787. Return: AL = status (see #0537)
  1788. SeeAlso: AX=2402h,AX=2404h
  1789. --------N-172406-----------------------------
  1790. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED RECEIVE
  1791.     AX = 2406h
  1792. Return: AL = status (see #0537)
  1793. SeeAlso: AX=2407h,AX=240Ah
  1794. --------N-172407-----------------------------
  1795. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE CHARACTER FROM REMOTE
  1796.     AX = 2407h
  1797. Return: AL = status (see also #0537)
  1798.         06h end of data
  1799.     DL = received character
  1800. SeeAlso: AX=2406h
  1801. --------N-172408-----------------------------
  1802. INT 17 - Shamrock Software NET.24 v3.11+ - RECEIVE BLOCK, WITH HANDSHAKE
  1803.     AX = 2408h
  1804. Return: AL = status (see also #0537)
  1805.         06h end of data
  1806.     CX = number of bytes in receive buffer
  1807.     DX:SI -> receive buffer
  1808. SeeAlso: AX=2401h,AX=2405h,AX=2409h
  1809. --------N-172409-----------------------------
  1810. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT COMMAND, WITH HANDSHAKE
  1811.     AX = 2409h
  1812.     BX = target address
  1813.     CX = number of data bytes
  1814.     DL = command code to send
  1815.     DS:SI -> data bytes for command
  1816. Return: AL = status (see also #0537)
  1817.         03h no response
  1818.         06h remote currently unable to perform command
  1819. SeeAlso: AX=2405h,AX=2408h
  1820. --------N-17240A-----------------------------
  1821. INT 17 - Shamrock Software NET.24 v3.11+ - PREPARE CHARACTER-ORIENTED TRANSMIT
  1822.     AX = 240Ah
  1823. Return: AL = status (see #0537)
  1824. SeeAlso: AX=2406h,AX=240Bh,AX=240Ch
  1825. --------N-17240B-----------------------------
  1826. INT 17 - Shamrock Software NET.24 v3.11+ - TRANSMIT SINGLE CHARACTER TO REMOTE
  1827.     AX = 240Bh
  1828.     DL = character to send
  1829. Return: AL = status (see also AX=2400h)
  1830.         03h transmission error
  1831.         06h write error
  1832. SeeAlso: AX=2407h,AX=240Ah,AX=240Ch
  1833. --------N-17240C-----------------------------
  1834. INT 17 - Shamrock Software NET.24 v3.11+ - END CHARACTER-ORIENTED TRANSMIT
  1835.     AX = 240Ch
  1836. Return: AL = status (see also AX=2400h)
  1837.         03h transmission error
  1838.         06h remote breaks connection
  1839. SeeAlso: AX=240Ah,AX=240Bh
  1840. --------J-175000-----------------------------
  1841. INT 17 - AX (Japanese AT) PRINTER - SET PRINTER COUNTRY CODE
  1842.     AX = 5000h
  1843.     BX = country code
  1844.         0001h USA (English), 0051h Japan
  1845. Return: AL = status
  1846.         00h successful
  1847.         01h bad country code
  1848.         02h other error
  1849. SeeAlso: AX=5001h,AH=51h,INT 10/AX=5000h,INT 16/AX=5000h
  1850. --------J-175001-----------------------------
  1851. INT 17 - AX (Japanese AT) PRINTER - GET PRINTER COUNTRY CODE
  1852.     AX = 5001h
  1853. Return: AL = status
  1854.         00h successful
  1855.         BX = country code
  1856.         02h error
  1857. SeeAlso: AX=5000h,AH=51h,INT 10/AX=5001h,INT 16/AX=5001h
  1858. --------J-1751-------------------------------
  1859. INT 17 - AX (Japanese AT) PRINTER - JIS to Shift-JIS CONVERSION
  1860.     AH = 51h
  1861.     DX = 2-byte JIS code
  1862. Return: DX = shift-JIS value or 0000h on error
  1863. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  1864.       characters to Shift-JIS characters, and the other performs the
  1865.       opposite conversion
  1866. SeeAlso: AX=5000h,AH=52h
  1867. --------J-1752-------------------------------
  1868. INT 17 - AX (Japanese AT) PRINTER - Shift-JIS to JIS CONVERSION
  1869.     AH = 52h
  1870.     DX = 2-byte shift-JIS code
  1871. Return: DX = JIS code or 0000h on error
  1872. Note:    one of AH=51h and AH=52h converts from JIS (Japanese Industry Standard)
  1873.       characters to Shift-JIS characters, and the other performs the
  1874.       opposite conversion
  1875. SeeAlso: AH=51h
  1876. --------V-1760-------------------------------
  1877. INT 17 - FLASHUP.COM - INSTALLATION CHECK
  1878.     AH = 60h
  1879. Return: AL = 60h
  1880.     DX = CS of resident code
  1881. Notes:    FLASHUP.COM is part of Flash-Up Windows by The Software Bottling Co.
  1882.     FLASHUP also hooks INT 10 and receives commands via INT 10/AH=09h,0Ah
  1883.       consisting of an 80h followed by the actual command
  1884. SeeAlso: INT 10/AH=09h,INT 10/AH=0Ah
  1885. --------V-1761-------------------------------
  1886. INT 17 - SPEEDSCR.COM - INSTALLATION CHECK
  1887.     AH = 61h
  1888. Return: AL = 61h
  1889.     DX = CS of resident code
  1890. Note:    SPEEDSCR.COM is by The Software Bottling Co.
  1891. --------P-1762-------------------------------
  1892. INT 17 U - T2PS v1.0 - UNINSTALL
  1893.     AH = 62h
  1894. Return: nothing
  1895. SeeAlso: AH=63h,AH=64h,INT 05/AX=554Eh
  1896. --------P-1763-------------------------------
  1897. INT 17 U - T2PS v1.0 - SET PARAMETERS
  1898.     AH = 63h
  1899.     ES:SI -> settings (see #0538)
  1900. Program: T2PS is a shareware ASCII-to-PostScript converter by A.N.D.
  1901.       Technologies
  1902. SeeAlso: AH=62h,AH=64h,INT 05/AX=4E57h
  1903.  
  1904. Format of T2PS settings:
  1905. Offset    Size    Description    (Table 0538)
  1906.  00h    WORD    LPT port number (0=LPT1, etc.)
  1907.  02h    WORD    page heigh in points
  1908.  04h    WORD    page width in points
  1909.  06h    WORD    top margin in points
  1910.  08h    WORD    bottom margin in points
  1911.  0Ah    WORD    left margin in points
  1912.  0Ch    WORD    right margin in points
  1913.  0Eh    WORD    font size in points
  1914.  10h    WORD    tab size
  1915.  12h    WORD    timeout in clock ticks
  1916. --------P-1764-------------------------------
  1917. INT 17 U - T2PS v1.0 - GET PARAMETERS
  1918.     AH = 64h
  1919.     ES:SI -> buffer for settings (see #0538)
  1920. Return: ES:SI buffer filled
  1921. SeeAlso: AH=62h,AH=63h,INT 05/AX=5053h
  1922. --------b-176F00BX0000-----------------------
  1923. INT 17 - HP Vectra - EXTENDED BIOS - "F17_INQUIRE" - INSTALLATION CHECK
  1924.     AX = 6F00h
  1925.     BX = 0000h
  1926. Return: BX = 4850h ("HP") if HP Extended BIOS printer extensions available
  1927. SeeAlso: AX=6F02h,INT 14/AX=6F00h,INT 10/AX=6F00h,INT 14/AX=6F00h
  1928. SeeAlso: INT 33/AX=6F00h,INT 6F/AH=00h"HP Vectra"
  1929. --------b-176F02-----------------------------
  1930. INT 17 - HP Vectra - EXTENDED BIOS - "F17_PUT_BUFFER" - PRINT BUFFER
  1931.     AX = 6F02h
  1932.     CX = size of buffer in bytes
  1933.     DX = port number (0-3)
  1934.     ES:DI -> buffer containing characters to be printed
  1935. Return: AH = printer status (see #0528)
  1936.     CX = number of bytes successfully printed
  1937.     ---on error (AH bit 0 set)---
  1938.         ES:DI -> next byte to be sent
  1939.     ---if successful---
  1940.         ES:DI unchanged
  1941. SeeAlso: AH=00h,AX=6F00h,INT 14/AX=6F02h
  1942. --------N-1781-------------------------------
  1943. INT 17 - Alloy NTNX, MW386 - CANCEL JOBS FOR CURRENT USER
  1944.     AH = 81h
  1945.     AL = 00h (NTNX compatibility mode)
  1946.     CL = number of jobs to cancel
  1947. Return: AL = status (see #0539)
  1948. Note:    this function cancels the last CL printouts for the current task
  1949. SeeAlso: AH=82h
  1950.  
  1951. (Table 0539)
  1952. Values for Alloy status:
  1953.  00h    success
  1954.  01h-7Fh warning
  1955.  80h    general failure
  1956.  81h    host overloaded (NTNX only)
  1957.  82h    module busy (NTNX only)
  1958.  83h    host busy (NTNX only)
  1959.  84h    re-entry flag set
  1960.  85h    invalid request
  1961.  86h    invalid printer
  1962.  87h    invalid process ID
  1963.  89h    access denied
  1964.  8Ah    option not available for given port type
  1965.  8Bh    option not available for given task type
  1966.  91h    printer busy
  1967.  C2h    file not found
  1968.  C3h    path not found
  1969.  C4h    file access failure
  1970. --------N-1782-------------------------------
  1971. INT 17 - Alloy NTNX, MW386 - CANCEL ALL JOBS FOR CURRENT USER
  1972.     AH = 82h
  1973.     AL = 00h (NTNX compatibility mode)
  1974. Return: AL = status (see #0539)
  1975. SeeAlso: AH=81h
  1976. --------N-1783-------------------------------
  1977. INT 17 - Alloy NTNX, MW386 - SET NUMBER OF COPIES
  1978.     AH = 83h
  1979.     AL = mode
  1980.         00h NTNX compatibility
  1981.         CL = number of copies (max 99, default 1)
  1982.         02h MW386 v2+
  1983.         BX = logical device number
  1984.             00h-03h = LPT1-LPT4
  1985.             04h-07h = COM1-COM4
  1986.         CX = number of copies
  1987. Return: AL = status (see #0539)
  1988. Note:    in NTNX compatibility mode, this function only affects LPT1
  1989. --------N-1784-------------------------------
  1990. INT 17 - Alloy NTNX, MW386 - GENERATE PRINT BREAK
  1991.     AH = 84h
  1992.     AL = mode
  1993.         00h NTNX compatibility
  1994.         02h MW386 v2+
  1995.         BX = logical device number
  1996.             00h-03h = LPT1-LPT4
  1997.             04h-07h = COM1-COM4
  1998. Note:    closes spool file and tells spooler to queue the print job (LPT1 only
  1999.       under MW386 in NTNX compatibility mode)
  2000. --------J-1784-------------------------------
  2001. INT 17 - AX (Japanese AT) PRINTER - OUTPUT CHARACTER WITHOUT CONVERSION
  2002.     AH = 84h
  2003.     AL = character
  2004.     DX = printer number
  2005. Return: AH = printer status (see #0528)
  2006. SeeAlso: AH=00h,AH=85h
  2007. --------J-1785-------------------------------
  2008. INT 17 - AX (Japanese AT) PRINTER - ENABLE/DISABLE CHARACTER CONVERSION
  2009.     AH = 85h
  2010.     AL = new state (00h enabled, 01h disabled)
  2011. SeeAlso: AH=84h"AX"
  2012. --------N-1787-------------------------------
  2013. INT 17 - Alloy NTNX - SET INDOS POINTER
  2014.     AH = 87h
  2015.     AL = 00h
  2016.     CX:BX -> buffer for user-written printer drivers
  2017. Return: BX,CX destroyed
  2018. Note:    must be executed before the printer is enabled
  2019. SeeAlso: AH=8Ah
  2020. --------N-1788-------------------------------
  2021. INT 17 - Alloy NTNX, MW386 - REMOVE PRINTER FROM SPOOLER
  2022.     AH = 88h
  2023.     AL = mode
  2024.         00h NTNX compatibility
  2025.         DX = NTNX printer number (see #0540)
  2026.         01h MW386
  2027.         DX = MW386 printer number
  2028. Return: AH = status (see #0539)
  2029. Note:    removes specified printer from the spooler's list of printers
  2030. SeeAlso: AH=89h,AH=8Bh
  2031.  
  2032. (Table 0540)
  2033. Values for Alloy NTNX printer number:
  2034.  00h    host LPT1
  2035.  01h    host LPT2
  2036.  02h    host LPT3
  2037.  03h    host LPT4
  2038.  04h    host COM1
  2039.  05h    host COM2
  2040.  06h    user's logical COM2
  2041.  07h    user's terminal AUX port
  2042.  08h    user's logical COM1 (MW386 only)
  2043. --------N-1789-------------------------------
  2044. INT 17 - Alloy NTNX, MW386 - ADD PRINTER TO SPOOLER
  2045.     AH = 89h
  2046.     AL = mode
  2047.         00h NTNX compatibility
  2048.         DX = NTNX printer number (see #0540)
  2049.         01h MW386
  2050.         DX = MW386 printer number
  2051. Return: AL = status (see #0539)
  2052. Note:    the specified printer is added to the spooler's list of available
  2053.       printers
  2054. SeeAlso: AH=88h,AH=8Bh
  2055. --------N-178A-------------------------------
  2056. INT 17 - Alloy NTNX - ACTIVATE USER-WRITTEN PRINTER DRIVER
  2057.     AH = 8Ah
  2058.     ???
  2059. SeeAlso: AH=92h
  2060. --------N-178B-------------------------------
  2061. INT 17 - Alloy MW386 - GET PHYSICAL DEVICE NUMBER FROM NAME
  2062.     AH = 8Bh
  2063.     DS:DX -> ASCIZ printer name
  2064. Return: AL = status (see also AH=81h)
  2065.         00h successful
  2066.         DX = physical device number
  2067. SeeAlso: AH=89h,AH=8Ch,INT 14/AH=20h"Alloy"
  2068. --------N-178C-------------------------------
  2069. INT 17 - Alloy MW386 - GET DEVICE NAME FROM PHYSICAL DEVICE NUMBER
  2070.     AH = 8Ch
  2071.     DX = physical device number
  2072.     ES:DI -> 17-byte buffer for ASCIZ device name
  2073. Return: AL = status (see also AH=81h)
  2074.         00h successful
  2075.         ES:DI buffer filled
  2076. SeeAlso: AH=88h,AH=8Bh
  2077. --------N-178D-------------------------------
  2078. INT 17 - Alloy NTNX,MW386 - RESET SPOOLER
  2079.     AH = 8Dh
  2080.     AL = 00h
  2081. Return: AL = status (see #0539)
  2082. Notes:    clears all buffers and resets spooler to boot-up values
  2083.     MW386 supports this function for compatibility only; it is a NOP
  2084. --------N-178E-------------------------------
  2085. INT 17 - Alloy NTNX - GET INT 28 ENTRY POINT
  2086.     AH = 8Eh
  2087.     AL = 00h
  2088. Return: CX:BX -> INT 28 entry point
  2089. SeeAlso: AH=8Fh
  2090. --------N-178F-------------------------------
  2091. INT 17 - Alloy NTNX - GET DOS INTERCEPT ENTRY POINT
  2092.     AH = 8Fh
  2093.     AL = 00h
  2094. Return: CX:BX -> DOS intercept routine
  2095. SeeAlso: AH=8Eh
  2096. --------N-1790-------------------------------
  2097. INT 17 - Alloy NTNX, MW386 - SPOOL FILE BY NAME
  2098.     AH = 90h
  2099.     AL = mode
  2100.         00h NTNX compatibility
  2101.         DL = printer code (FFh=current) (NTNX, MW386 v1.x only)
  2102.         DH = number of copies (FFh=current) (NTNX, MW386 v1.x only)
  2103.         02h MW386 v2+
  2104.         BX = logical device number
  2105.             00h-03h = LPT1-LPT4
  2106.             04h-07h = COM1-COM4
  2107.     CX:SI -> ASCIZ pathname
  2108. Return: AL = status (see #0539)
  2109. Note:    in mode 00h, the file is always sent to logical LPT1
  2110. SeeAlso: AH=A0h
  2111. --------N-1791-------------------------------
  2112. INT 17 - Alloy NTNX, MW386 - GET USER NUMBER AND CURRENT PRINTER
  2113.     AH = 91h
  2114.     AL = mode
  2115.         00h NTNX compatibility
  2116.         Return: CX = user number (00h = host)
  2117.             DX = currently selected printer number (00h-08h)
  2118.         01h MW386
  2119.         Return: CX = user number
  2120.             DX = physical dev number of currently selected printer
  2121.         02h MW386 v2+
  2122.         BX = logical device number
  2123.             00h-03h = LPT1-LPT4
  2124.             04h-07h = COM1-COM4
  2125.         Return: CX = user number
  2126.             DX = physical device number
  2127. Return: AL = status (see #0539)
  2128. SeeAlso: AH=8Ch
  2129. --------N-1792-------------------------------
  2130. INT 17 - Alloy NTNX - CHECK PRINTER DRIVER
  2131.     AH = 92h
  2132.     AL = 00h
  2133.     CL = 00h
  2134. Return: CL = driver state
  2135.         01h initialized
  2136.         80h not initialized
  2137.     AX = status (see #0539)
  2138. SeeAlso: AH=8Ah
  2139. --------N-1794-------------------------------
  2140. INT 17 - Alloy NTNX, MW386 - SELECT PRINTER
  2141.     AH = 94h
  2142.     AL = mode
  2143.         00h NTNX compatibility
  2144.         DX = NTNX printer number (see #0540)
  2145.         01h MW386
  2146.         DX = MW386 printer number
  2147.         02h MW386 v2+
  2148.         BX = logical printer number
  2149.         DX = MW386 printer number
  2150. Return: AL = status (see #0539)
  2151. Note:    modes 00h and 01h affect only logical LPT1
  2152. SeeAlso: AH=8Bh,AH=95h
  2153. --------N-1795-------------------------------
  2154. INT 17 - Alloy NTNX, MW386 - GET CURRENT PRINTER
  2155.     AH = 95h
  2156.     AL = mode
  2157.         00h NTNX compatibility
  2158.         Return: DX = NTNX printer number (see #0540)
  2159.                 (FFFFh if current printer not compatible with NTNX)
  2160.         01h MW386
  2161.         Return: DX = MW386 printer number
  2162.         02h MW386 v2+
  2163.         BX = logical device number
  2164.             00h-03h = LPT1-LPT4
  2165.             04h-07h = COM1-COM4
  2166.         Return: DX = MW386 printer number (FFFFh = none)
  2167. Return: AL = status (see #0539)
  2168. Note:    modes 00h and 01h return the printer number of logical LPT1 only
  2169. SeeAlso: AH=94h
  2170. --------N-1796-------------------------------
  2171. INT 17 - Alloy NTNX - SET SERIAL PORT PARAMETERS
  2172.     AH = 96h
  2173.     AL = 00h
  2174. Note:    documentation states that this is a NOP, doing only XOR AX,AX before
  2175.       returning
  2176. SeeAlso: INT 14/AH=24h
  2177. --------N-1797-------------------------------
  2178. INT 17 - Alloy NTNX, MW386 - SET DATA DRIVEN PRINT BREAK
  2179.     AH = 97h
  2180.     AL = mode
  2181.         00h NTNX compatibility
  2182.         02h MW386 v2+
  2183.         BX = logical device number
  2184.             00h-03h = LPT1-LPT4
  2185.             04h-07h = COM1-COM4
  2186.     CH,CL,DH = three character break sequence
  2187.     DL = subfunction
  2188.         00h set break string
  2189.         else reset break
  2190. Return: AL = status (see #0539)
  2191. Notes:    mode 00h affects only logical LPT1
  2192.     when the break string is encountered, the spool file will be closed and
  2193.       queued for printing automatically
  2194.     the break string is not permanently saved, and will be reset each time
  2195.       MW386 or the user is rebooted
  2196. SeeAlso: AH=9Bh
  2197. --------N-1798-------------------------------
  2198. INT 17 - Alloy NTNX,MW386 - RESTART PRINTER
  2199.     AH = 98h
  2200.     AL = 00h
  2201.     DL = printer number (FFh=current)
  2202. Return: AL = status
  2203.         00h successful
  2204.         01h incorrect printer
  2205.         02h task not found
  2206. Note:    MW386 supports this function for compatibility only; it is a NOP
  2207. --------N-1799-------------------------------
  2208. INT 17 - Alloy NTNX, MW386 - GET/SET PRINTER MODE
  2209.     AH = 99h
  2210.     AL = mode
  2211.         00h NTNX compatibility
  2212.         DL = NTNX printer number (see #0540)
  2213.             (FFh = task's current logical LPT1)
  2214.         DH = mode (see #0541)
  2215.         01h MW386
  2216.         DX = MW386 printer number
  2217.         CL = mode (as for DH above)
  2218. Return: AL = status (see #0539)
  2219.     DH = mode (bits 1 and 2 set as above)
  2220.     DL = printer owner's user number if not spooled
  2221.  
  2222. Bitfields for Alloy printer mode:
  2223.  0    get mode if 1, set mode if 0    (Table 0541)
  2224.  1    private ("attached")
  2225.  2    direct instead of spooled
  2226.  3-7    reserved (0)
  2227. --------N-179A-------------------------------
  2228. INT 17 - Alloy NTNX,MW386 - SET TAB EXPANSION
  2229.     AH = 9Ah
  2230.     AL = mode
  2231.         00h NTNX compatibility
  2232.         DX = NTNX printer number (see #0540)
  2233.             (FFFFh = current logical LPT1)
  2234.         01h MW386
  2235.         DX = MW386 printer number
  2236.     CL = tab length (00h = no expansion, 01h-63h = spaces per tab)
  2237. Return: AL = status (see #0539)
  2238. Note:    beginning with MW386 v2.0, tab expansion is set on a per-printer basis
  2239.       rather than a per-user basis; NTNX and MW386 v1.x ignore DX
  2240. SeeAlso: AH=A4h
  2241. --------N-179B-------------------------------
  2242. INT 17 - Alloy NTNX,MW386 - SET PRINT BREAK TIMEOUT
  2243.     AH = 9Bh
  2244.     AL = mode
  2245.         00h NTNX compatibility
  2246.         CX = timeout value in clock ticks (1/18 sec) (00h = never)
  2247.         01h MW386
  2248.         CX = timeout value in seconds (00h = never)
  2249.         02h MW386 v2+
  2250.         BX = logical device number
  2251.             00h-03h = LPT1-LPT4
  2252.             04h-07h = COM1-COM4
  2253.         CX = timeout value in seconds (00h = never)
  2254. Return: AL = status (see #0539)
  2255. Notes:    modes 00h and 01h affect only the current logical LPT1
  2256.     if no data is sent to a printer for the specified amount of time, the
  2257.       spool file will be closed and queued for printing automatically
  2258. SeeAlso: AH=97h
  2259. --------N-17A0-------------------------------
  2260. INT 17 - Alloy MW386 - SPOOL COPY OF FILE
  2261.     AH = A0h
  2262.     AL = mode
  2263.         00h NTNX compatibility
  2264.         DX = ??? (NTNX, MW386 v1.x only)
  2265.         02h MW386 v2+
  2266.         BX = logical device number
  2267.             00h-03h = LPT1-LPT4
  2268.             04h-07h = COM1-COM4
  2269.     CX:SI -> ASCIZ pathname
  2270. Return: AL = status (see #0539)
  2271. Notes:    makes a copy of the specified file in the spooler's directory, allowing
  2272.       the original file to be modified or deleted while the copy is printed
  2273.     in mode 00h, the file is printed on logical LPT1
  2274. SeeAlso: AH=90h
  2275. --------N-17A4-------------------------------
  2276. INT 17 - Alloy MW386 - ENABLE/DISABLE FORM FEED
  2277.     AH = A4h
  2278.     AL = new state
  2279.         00h form feed after end of print job disabled
  2280.         01h form feed enabled
  2281. Return: AL = status (see #0539)
  2282. Note:    only affects the current logical LPT1
  2283. SeeAlso: AH=9Ah,AH=A6h,INT 7F/AH=05h"NTNX (Host)"
  2284. --------N-17A6-------------------------------
  2285. INT 17 - Alloy MW386 - ENABLE/DISABLE BANNER PAGE
  2286.     AH = A6h
  2287.     AL = new state
  2288.         00h banner page before print job disabled
  2289.         01h banner page enabled
  2290. Return: AL = status (see #0539)
  2291. Note:    only affects the current logical LPT1
  2292. SeeAlso: AH=A4h
  2293. --------N-17A7-------------------------------
  2294. INT 17 - Alloy MW386 v2+ - GET/SET SPOOL FLAGS
  2295.     AH = A7h
  2296.     AL = spool flags (see #0542)
  2297.     BX = logical device number
  2298.         00h-03h = LPT1-LPT4
  2299.         04h-07h = COM1-COM4
  2300. Return: AL = status (see #0539)
  2301. Note:    the documentation does not state which register contains the result of
  2302.       a GET
  2303. SeeAlso: AH=A4h,AH=A6h
  2304.  
  2305. Bitfields for Alloy spool flags:
  2306. Bit(s)    Description    (Table 0542)
  2307.  0    banner page enabled (see AH=A6h)
  2308.  1    form feed enabled (see AH=A4h)
  2309.  2-6    reserved (0)
  2310.  7    set flags if 1, get flags if 0
  2311. --------N-17A8-------------------------------
  2312. INT 17 - Alloy MW386 - DEFINE TEMPORARY FILENAME
  2313.     AH = A8h
  2314.     CX:SI -> ASCIZ filename without extension (max 8 chars)
  2315. Return: AL = status (see #0539)
  2316. Note:    allows application to specify banner page filename for spool files
  2317.       collected from the application's printer output
  2318. SeeAlso: AH=A9h
  2319. --------N-17A9-------------------------------
  2320. INT 17 - Alloy MW386 - CHANGE TEMPORARY SPOOL DRIVE
  2321.     AH = A9h
  2322.     AL = new spool drive (2=C:,3=D:,etc)
  2323. Return: AL = status (see #0539)
  2324. Note:    does not remove previous spooling directory since jobs may be pending
  2325. SeeAlso: AH=A8h
  2326. --------N-17AA-------------------------------
  2327. INT 17 - Alloy MW386 v2+ - GET REAL-TIME PRINTER STATUS
  2328.     AH = AAh
  2329.     AL = mode
  2330.         00h NTNX
  2331.         DX = NTNX printer number (see #0540)
  2332.         01h MW386
  2333.         DX = MW386 printer number
  2334. Return: AH = instantaneous printer status
  2335.         00h printer ready
  2336.         01h not ready
  2337.         12h off line
  2338.         13h out of paper
  2339.         14h general device failure
  2340.         15h device timeout
  2341.         16h bad device number
  2342. --------N-17AF-------------------------------
  2343. INT 17 - Alloy MW386 - CHECK SPOOLER
  2344.     AH = AFh
  2345. Return: AX = 55AAh if spooler available
  2346. --------c-17C0-------------------------------
  2347. INT 17 - PC Magazine PCSpool - GET CONTROL BLOCK ADDRESS
  2348.     AH = C0h
  2349.     DX = printer port (0-3)
  2350. Return: ES:BX -> control block (see #0543)
  2351. SeeAlso: AH=C1h
  2352.  
  2353. Format of PCSpool control block:
  2354. Offset    Size    Description    (Table 0543)
  2355.  00h    WORD    printer number
  2356.  02h    WORD    address of printer status port
  2357.  04h    WORD    number of first record in queue
  2358.  06h    WORD    number of last record in queue
  2359.  08h    DWORD    characters already printed
  2360.  0Ch    DWORD    number of characters remaining
  2361.  10h    DWORD    pointer to dequeue buffer
  2362.  14h    DWORD    previous count of characters printed
  2363.  18h    DWORD    number of clock ticks taken to print them
  2364.  1Ch    WORD    offset of next character to output
  2365.  1Eh    WORD    offset of next character to print
  2366.  20h    WORD    pointer to spooling queue record
  2367.  22h    BYTE    current spooling status
  2368.  23h    BYTE    current printer status:
  2369.         00h OK
  2370.         01h not ready
  2371.         02h paused with message
  2372.         03h paused
  2373.         04h initializing
  2374.         FEh non-existent port
  2375.         FFh not spooled
  2376.  24h    BYTE    current control record type
  2377.  25h    WORD    observed printer speed
  2378.  27h    WORD    characters to print per service
  2379.  29h    BYTE    01h if disk write needed
  2380.  2Ah    BYTE    01h if queued data should be flushed
  2381.  2Bh    BYTE    01h to update cps status
  2382. --------c-17C1--------------------------------
  2383. INT 17 - PC Magazine PCSpool - BUILD PAUSE CONTROL RECORD
  2384.     AH = C1h
  2385.     DX = printer port (0-3)
  2386.     DS:SI -> ASCIZ string to save for display
  2387. Note:    flushes pending writes
  2388. SeeAlso: AH=C0h,AH=C2h
  2389. --------c-17C2-------------------------------
  2390. INT 17 - PC Magazine PCSpool - FLUSH PENDING WRITES
  2391.     AH = C2h
  2392.     DX = printer port (0-3)
  2393. SeeAlso: AH=C3h
  2394. --------c-17C3-------------------------------
  2395. INT 17 - PC Magazine PCSpool - CANCEL PRINTER QUEUE (FLUSH ALL QUEUED OUTPUT)
  2396.     AH = C3h
  2397.     DX = printer port (0-3)
  2398. SeeAlso: AH=C2h,AH=C7h
  2399. --------c-17C4-------------------------------
  2400. INT 17 - PC Magazine PCSpool - QUERY SPOOLER ACTIVE
  2401.     AH = C4h
  2402. Return: DI = B0BFh
  2403.     SI = segment
  2404. --------c-17C5-------------------------------
  2405. INT 17 - PC Magazine PCSpool - JOB SKIP PRINTER QUEUE
  2406.     AH = C5h
  2407.     DX = printer port (0-3)
  2408. Note:    cancels up to the pause record
  2409. --------c-17C6-------------------------------
  2410. INT 17 - PC Magazine PCSpool - CHECK PRINTER QUEUE STATUS
  2411.     AH = C6h
  2412.     DX = printer port (0-3)
  2413. Return: AX = queue status
  2414.        0000h printer not active or at pause
  2415.        0001h printer busy
  2416. --------c-17C7-------------------------------
  2417. INT 17 - PC Magazine PCSpool - CLOSE QUEUE
  2418.     AH = C7h
  2419.     DX = printer port (0-3)
  2420. SeeAlso: AH=C3h
  2421. --------P-17CD00-----------------------------
  2422. INT 17 - INSET - EXECUTE COMMAND STRING
  2423.     AX = CD00h
  2424.     DS:DX -> ASCIZ command string (max 80 bytes)
  2425. Return: CX = 07C2h (1986d)
  2426. Note:    user interface menus pop up after last command, unless that command
  2427.     exits INSET
  2428. --------P-17CD01-----------------------------
  2429. INT 17 - INSET - GET IMAGE SIZE
  2430.     AX = CD01h
  2431.     DS:DX -> ASCIZ name of image file
  2432. Return: AX = height in 1/720th inch
  2433.     BX = width in 1/720th inch
  2434.     CX = 07C2h (1986d)
  2435. --------P-17CD02-----------------------------
  2436. INT 17 - INSET - INITIALIZE
  2437.     AX = CD02h
  2438. Return: CX = 07C2h (1986d)
  2439. Note:    all open files are closed and the printer is reset
  2440. SeeAlso: AX=CD04h
  2441. --------P-17CD03-----------------------------
  2442. INT 17 - INSET - EXECUTE INSET MENU WITHIN OVERRIDE MODE
  2443.     AX = CD03h
  2444. Return: CX = 07C2h (1986d)
  2445. --------P-17CD04-----------------------------
  2446. INT 17 - INSET - INITIALIZE LINKED MODE
  2447.     AX = CD04h
  2448.     ES:SI -> FAR routine for linked mode (see #0544)
  2449. Return: CX = 07C2h
  2450. SeeAlso: AX=CD02h,AX=CD08h
  2451.  
  2452. (Table 0544)
  2453. Values INSET linked-mode routine is called with:
  2454.     AL = function
  2455.         00h send character to printer
  2456.         BL = character to send
  2457.         01h send string to printer
  2458.         CX = number of bytes to send
  2459.         DS:DX -> buffer containing data
  2460.         02h move print head to horizontal starting position of image
  2461. Return: AX = status
  2462.         0000h success
  2463.         0001h failure
  2464. --------P-17CD05-----------------------------
  2465. INT 17 - INSET - START MERGING IMAGE INTO TEXT
  2466.     AX = CD05h
  2467.     DS:DX -> ASCIZ name of PIX file
  2468.     CX = left margin of text in 1/720th inch
  2469. Return: AH = printer type
  2470.         00h page-oriented (multiple images may be placed side-by-side)
  2471.         01h line-oriented (use AX=CD06h for vertical paper movement)
  2472.     CX = 07C2h (1986d)
  2473. SeeAlso: AX=CD07h
  2474. --------P-17CD06-----------------------------
  2475. INT 17 - INSET - GRAPHICS LINE FEED
  2476.     AX = CD06h
  2477. Return: AH = completion status
  2478.         00h image complete
  2479.         01h image incomplete
  2480.     CX = 07C2h (1986d)
  2481. SeeAlso: AX=CD09h
  2482. --------P-17CD07-----------------------------
  2483. INT 17 - INSET - FLUSH GRAPHICS FROM MERGE BUFFER
  2484.     AX = CD07h
  2485. Return: CX = 07C2h
  2486. SeeAlso: AX=CD05h
  2487. --------P-17CD08-----------------------------
  2488. INT 17 - INSET - CANCEL LINK MODE
  2489.     AX = CD08h
  2490. Return: CX = 07C2h
  2491. SeeAlso: AX=CD04h
  2492. --------P-17CD09-----------------------------
  2493. INT 17 - INSET - ALTER TEXT LINE SPACING
  2494.     AX = CD09h
  2495.     CX = line spacing in 1/720th inch
  2496. Return: CX = 07C2h
  2497. Note:    not yet implemented, line spacing is currently fixed at 1/6 inch
  2498. SeeAlso: AX=CD06h
  2499. --------P-17CD0A-----------------------------
  2500. INT 17 - INSET - GET SETUP
  2501.     AX = CD0Ah
  2502.     DS:DX -> buffer for IN.SET data
  2503. Return: CX = 07C2h
  2504. --------P-17CD0B-----------------------------
  2505. INT 17 - INSET - START GETTING SCALED IMAGE
  2506.     AX = CD0Bh
  2507.     DS:SI -> ASCIZ pathname of .PIX file
  2508.     BX = number of bitplanes
  2509.     CX = number of rows in output bitmap
  2510.     DX = number of columns in output bitmap
  2511. Return: AX = status
  2512.         0000h OK
  2513.         FFFFh error
  2514. Note:    image is returned in strips by repeated calls to AX=CD0Ch
  2515. --------P-17CD0C-----------------------------
  2516. INT 17 - INSET - GET NEXT IMAGE STRIP
  2517.     AX = CD0Ch
  2518. Return: AX = status
  2519.         0000h OK but not complete
  2520.         0001h OK and image complete
  2521.         FFFFh error
  2522.     DS:SI -> buffer (max 4K) for bit map strip
  2523.     CX = start row
  2524.     DX = number of rows
  2525.     BX = offset in bytes between bit planes
  2526. Note:    buffer may be overwritten by subsequent calls
  2527. SeeAlso: AX=CD0Bh
  2528. --------P-17E0-------------------------------
  2529. INT 17 - EPP BIOS - INSTALLATION CHECK
  2530.     AH = E0h
  2531. Return: ??? (AH <> E0h if installed ???)
  2532. SeeAlso: AX=0200h"EPP",AH=E1h,AH=E2h
  2533. --------P-17E1-------------------------------
  2534. INT 17 - EPP BIOS - DISABLE EPP
  2535.     AH = E1h
  2536.     ???
  2537. Return: ???
  2538. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E2h
  2539. --------P-17E2-------------------------------
  2540. INT 17 - EPP BIOS - ENABLE EPP
  2541.     AH = E2h
  2542.     ???
  2543. Return: ???
  2544. SeeAlso: AX=0200h"EPP",AH=E0h,AH=E1h
  2545. --------P-17F0-------------------------------
  2546. INT 17 - NorthNet Jetstream API - INSTALLATION CHECK
  2547.     AH = F0h
  2548.     DX = printer port (0-3)
  2549. Return: AX = 0001h Jetstream present
  2550.          else  non-Jetstream port
  2551. Note:    NorthNet Jetstream is a high-performance DMA-driven parallel card able
  2552.       to drive printers at up to 80000 characters per second
  2553. --------P-17F1-------------------------------
  2554. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER
  2555.     AH = F1h
  2556.     CX = data buffer length
  2557.     DX = printer port (0-3)
  2558.     DS:SI -> data buffer
  2559. Return: AX = status
  2560.         0000h printer not ready (see also AH=02h)
  2561.         other printing started
  2562. SeeAlso: AH=00h,AH=F2h,AH=F3h,AH=F5h
  2563. --------P-17F2-------------------------------
  2564. INT 17 - NorthNet Jetstream API - GET PRINT PROGRESS STATUS
  2565.     AH = F2h
  2566.     DX = printer port (0-3)
  2567. Return: AX = status
  2568.         0000h prior print request finished
  2569.         other number of characters left to print
  2570. SeeAlso: AH=02h,AH=F1h,AH=F3h
  2571. --------P-17F3-------------------------------
  2572. INT 17 - NorthNet Jetstream API - ABORT PRINT OPERATION
  2573.     AH = F3h
  2574.     DX = printer port (0-3)
  2575. Return: AX = number of unprinted characters due to abort
  2576. SeeAlso: AH=F1h,AH=F4h
  2577. --------P-17F4-------------------------------
  2578. INT 17 - NorthNet Jetstream API - SET COMPLETION (POST) ADDRESS
  2579.     AH = F4h
  2580.     DX = printer port (0-3)
  2581.     DS:DS -> FAR post address (called with interrupts on)
  2582. SeeAlso: AH=F1h,AH=F3h
  2583. --------P-17F5-------------------------------
  2584. INT 17 - NorthNet Jetstream API - PRINT DATA BUFFER FROM EXTENDED MEMORY
  2585.     AH = F5h
  2586.     CX = data buffer length
  2587.     DX = printer port (0-3)
  2588.     DS:SI -> data buffer (32-bit physical address)
  2589. Return: AX = status
  2590.         0000h printer not ready (see also AH=02h)
  2591.         other printing started
  2592. SeeAlso: AH=F1h
  2593. --------c-17FF--BX0000-----------------------
  2594. INT 17 U - PC-MOS/386 v5.01 - PRINT SPOOLER - CLOSE SPOOL FILE
  2595.     AH = FFh
  2596.     BX = 0000h
  2597.     CX = 0000h
  2598.     DX = printer port number
  2599. Return: AH = printer status (see #0528 at AH=00h)
  2600. Program: PC-MOS/386 v5.01 is a multitasking, multiuser MS-DOS 5.0-compatible
  2601.       operating system by The Software Link, Inc.
  2602. Desc:    close the spool file immediately instead of waiting for the close time
  2603.       to elapse
  2604. SeeAlso: AH=01h,AH=03h"PC-MOS"
  2605. --------B-18---------------------------------
  2606. INT 18 - DISKLESS BOOT HOOK (START CASSETTE BASIC)
  2607. Desc:    called when there is no bootable disk available to the system
  2608. Notes:    only PCs produced by IBM contain BASIC in ROM, so the action is
  2609.       unpredictable on compatibles; this interrupt often reboots the
  2610.       system, and often has no effect at all
  2611.     network cards with their own BIOS can hook this interrupt to allow
  2612.       a diskless boot off the network (even when a hard disk is present
  2613.       if none of the partitions is marked as the boot partition)
  2614. SeeAlso: INT 2F/AX=4A06h,INT 86"NetBIOS"
  2615. --------J-1800-------------------------------
  2616. INT 18 - NEC PC-9800 series - KEYBOARD - GET KEYSTROKE
  2617.     AH = 00h
  2618. Return: AX = keystroke
  2619. SeeAlso: AH=01h,AH=02h,INT 16/AH=00h
  2620. --------J-1801-------------------------------
  2621. INT 18 - NEC PC-9800 series - KEYBOARD - CHECK FOR KEYSTROKE
  2622.     AH = 01h
  2623. Return: BH = status
  2624.         00h no keystrokes available
  2625.         01h keystroke available
  2626.         AX = keystroke
  2627. SeeAlso: AH=00h,AH=02h,INT 16/AH=01h
  2628. --------J-1802-------------------------------
  2629. INT 18 - NEC PC-9800 series - KEYBOARD - GET SHIFT STATUS
  2630.     AH = 02h
  2631. Return: AL = shift flags
  2632. SeeAlso: AH=00h,AH=02h,AH=03h,AH=04h,INT 16/AH=02h
  2633. --------J-1803-------------------------------
  2634. INT 18 - NEC PC-9800 series - KEYBOARD - INITIALIZE
  2635.     AH = 03h
  2636.     ???
  2637. Return: ???
  2638. SeeAlso: AH=00h,AH=04h
  2639. --------J-1804-------------------------------
  2640. INT 18 - NEC PC-9800 series - KEYBOARD - KEY PRESSED
  2641.     AH = 04h
  2642.     ???
  2643. Return: ???
  2644. Note:    details are not available at this time
  2645. SeeAlso: AH=00h,AH=02h,INT 16/AH=00h,INT 16/AH=01h,INT 16/AH=02h
  2646. --------J-18---------------------------------
  2647. INT 18 - NEC PC-9800 series - VIDEO
  2648.     AH = function
  2649.         0Ah set video mode
  2650.         0Bh get video mode
  2651.         0Ch start text screen display
  2652.         0Dh end text screen display
  2653.         0Eh set single display area
  2654.         0Fh set multiple display area
  2655.         10h set cursor shape
  2656.         11h display cursor
  2657.         12h terminate cursor
  2658.         13h set cursor position
  2659.         14h read font patter
  2660.         16h initialize text video RAM
  2661.         1Ah define user character
  2662.         others
  2663.     ???
  2664. Return: ???
  2665. Notes:    details are not available at this time
  2666.     text video RAM is located at segments A000h (characters) and A200h
  2667.       (attributes), graphics video RAM at segment C000h
  2668.  
  2669. Bitfields for NEC PC-9800 series video attributes:
  2670. Bit(s)    Description    (Table 0545)
  2671.  0    disable drawing character
  2672.  1    blinking
  2673.  2    reverse video
  2674.  3    underline
  2675.  4    vertical line
  2676.  7-5    color
  2677.     (0=black, 1=blue, 2=red, 3=purple, 4=green, 5=cyan, 6=yellow, 7=white)
  2678. --------J-180E-------------------------------
  2679. INT 18 - NEC PC-9800 series - SET SINGLE DISPLAY AREA
  2680.     AH = 0Eh
  2681.     DX = offset of first byte to display???
  2682. Return: ???
  2683. SeeAlso: AH=1Bh,MEM 0050h:0001h
  2684. --------J-181B-------------------------------
  2685. INT 18 - NEC PC-9800 series - SET DISPLAY MODE
  2686.     AH = 1Bh
  2687.     AL = ??? (00h for text mode)
  2688. Return: ???
  2689. --------r-185350BX4849-----------------------
  2690. INT 18 - SPHINX C-- - WB.COM - API
  2691.     AX = 5350h ('SP')
  2692.     BX = 4849h ('HI')
  2693.     CX = 4E58h ('NX')
  2694.     DH = function
  2695.         01h set ???
  2696.         DL = ???
  2697.         02h get ???
  2698.         Return: DL = ???
  2699.         03h get ???
  2700.         Return: ES:DI -> ??? data buffer
  2701.         06h ???
  2702. Return: AX = 7370h ('sp') if installed
  2703.     BX = 6869h ('hi') if installed
  2704.     CX = 6E78h ('nx') if installed
  2705. Program: SPHINX C-- is a shareware compiler by Peter Cellik for a language
  2706.       which is a cross between C and assembler; WB.COM is the driver which
  2707.       launches the WorkBench
  2708. --------s-186900-----------------------------
  2709. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET STATUS
  2710.     AX = 6900h
  2711. Return: AX = amount of DRAM on card or 0000h if GUS not available
  2712. Program: YEA_GUS is a driver for the Graphics Ultra Sound which hooks INT 18h
  2713.       and then shells out the the program requiring its services
  2714. SeeAlso: AX=6901h,AX=690Ah,AX=690Bh
  2715. --------s-186901-----------------------------
  2716. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESET
  2717.     AX = 6901h
  2718.     BX = number of active voices (14-32)
  2719. Return: nothing
  2720. SeeAlso: AX=6900h
  2721. --------s-186902-----------------------------
  2722. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOLUME FOR SPECIFIC VOICE
  2723.     AX = 6902h
  2724.     BX = voice number (00h-1Fh)
  2725.     CX = linear volume (0000h-01FFh)
  2726. Return: nothing
  2727. SeeAlso: AX=6900h,AX=6903h,AX=6904h,AX=6909h,AX=690Ah
  2728. --------s-186903-----------------------------
  2729. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET FREQUENCY FOR VOICE
  2730.     AX = 6903h
  2731.     BX = voice number (00h-1Fh)
  2732.     CX = frequency in Hz (0-44100)
  2733. Return: nothing
  2734. SeeAlso: AX=6902h,AX=6904h
  2735. --------s-186904-----------------------------
  2736. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET LEFT/RIGHT BALANCE
  2737.     AX = 6904h
  2738.     BX = voice number (00h-1Fh)
  2739.     CX = balance (0 = left, 7 = even, 15 = right)
  2740. Return: nothing
  2741. SeeAlso: AX=6902h,AX=6903h
  2742. --------s-186905-----------------------------
  2743. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - PLAY MUSIC
  2744.     AX = 6905h
  2745.     BL = voice number
  2746.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  2747.     CL = looping type (0 = none, 1 = forward, 2 = back and forth)
  2748.     CH:DI = 20-bit starting address for voice data
  2749.     DL:SI = 20-bit address for loop start
  2750.     DH:BP = 20-bit address for loop end
  2751. SeeAlso: AX=6903h,AX=6906h,AX=690Bh
  2752. --------s-186906-----------------------------
  2753. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - LOAD SOUND DATA
  2754.     AX = 6906h
  2755.     BL = data format (1 = twos-complement, 0 = not)
  2756.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  2757.     CX = number of bytes to send
  2758.     ES:SI -> buffer containing data
  2759.     DL:DI = 20-bit address of GUS DRAM at which to load sound data
  2760. SeeAlso: AX=6900h,AX=6905h,AX=690Ch
  2761. --------s-186907-----------------------------
  2762. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - STOP VOICE
  2763.     AX = 6907h
  2764.     BX = voice number (00h-1Fh)
  2765. Return: nothing
  2766. SeeAlso: AX=6908h,AX=690Dh
  2767. --------s-186908-----------------------------
  2768. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SET VOICE END
  2769.     AX = 6908h
  2770.     BX = voice number (00h-1Fh)
  2771.     CL:DX = 20-bit ending address
  2772. Return: nothing
  2773. SeeAlso: AX=690Bh
  2774. --------s-186909-----------------------------
  2775. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RAMP VOLUME
  2776.     AX = 6909h
  2777.     BL = voice number (00h-1Fh)
  2778.     BH = looping type (0 = none, 1 = forward, 2 = back and forth)
  2779.     CX = starting volume
  2780.     DX = ending volume
  2781.     DI:SI = time
  2782. Return: nothing
  2783. SeeAlso: AX=6902h,AX=690Ah
  2784. --------s-18690A-----------------------------
  2785. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET VOLUME
  2786.     AX = 690Ah
  2787.     BX = voice number (00h-1Fh)
  2788. Return: AX = current non-linear volume for voice
  2789. SeeAlso: AX=6902h,AX=6909h
  2790. --------s-18690B-----------------------------
  2791. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - GET POSITION
  2792.     AX = 690Bh
  2793.     BX = voice number
  2794. Return: BX:AX = 20-bit address at which voice is playing
  2795. SeeAlso: AX=6900h,AX=6905h,AX=6908h
  2796. --------s-18690C-----------------------------
  2797. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - SAVE SOUND DATA
  2798.     AX = 690Ch
  2799.     BL = data format (1 = twos-complement, 0 = not)
  2800.     BH = sample type (0 = 8-bit, 1 = 16-bit)
  2801.     CX = number of bytes to get
  2802.     ES:SI -> buffer for retrieved data
  2803.     DL:DI = 20-bit address in GUS DRAM from which to read voice data
  2804. Return: nothing
  2805. SeeAlso: AX=6906h
  2806. --------s-18690D-----------------------------
  2807. INT 18 - Gravis Ultra Sound YEA_GUS.EXE - RESTART VOICE
  2808.     AX = 690Dh
  2809.     BX = voice
  2810.     CX = sample type (0 = 8-bit, 1 = 16-bit)
  2811.     DX = looping type (0 = none, 1 = forward, 2 = back and forth)
  2812. Return: CX = balance value
  2813. SeeAlso: AX=6907h,AX=6908h
  2814. --------s-188000-----------------------------
  2815. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - INITIALIZE
  2816.     AX = 8000h
  2817. Program: EURO_MOD is a .MOD file player for the Gravis Ultra Sound which hooks
  2818.       INT 18h and then shells out to the program requiring its services
  2819. SeeAlso: AX=8001h,AX=8004h
  2820. --------s-188001-----------------------------
  2821. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - LOAD .MOD FILE
  2822.     AX = 8001h
  2823.     BX:CX -> ASCIZ filename
  2824. SeeAlso: AX=8000h,AX=8002h
  2825. --------s-188002-----------------------------
  2826. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - PLAY .MOD FILE
  2827.     AX = 8002h
  2828. SeeAlso: AX=8002h,AX=8003h
  2829. --------s-188003-----------------------------
  2830. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - STOP PLAYING
  2831.     AX = 8003h
  2832. --------s-188004-----------------------------
  2833. INT 18 - Gravis Ultra Sound EURO_MOD.EXE - SHUTDOWN
  2834.     AX = 8004h
  2835. SeeAlso: AX=8000h,AX=8003h
  2836. --------B-19---------------------------------
  2837. INT 19 - SYSTEM - BOOTSTRAP LOADER
  2838. Desc:    This interrupt reboots the system without clearing memory or restoring
  2839.       interrupt vectors.  Because interrupt vectors are preserved, this
  2840.       interrupt usually causes a system hang if any TSRs have hooked
  2841.       vectors from 00h through 1Ch, particularly INT 08.
  2842. Notes:    Usually, the BIOS will try to read sector 1, head 0, track 0 from drive
  2843.       A: to 0000h:7C00h.  If this fails, and a hard disk is installed, the
  2844.       BIOS will read sector 1, head 0, track 0 of the first hard disk.
  2845.       This sector should contain a master bootstrap loader and a partition
  2846.       table (see #0547).  After loading the master boot sector at
  2847.       0000h:7C00h, the master bootstrap loader is given control.  It will
  2848.       scan the partition table for an active partition, and will then load
  2849.       the operating system's bootstrap loader (contained in the first
  2850.       sector of the active partition) and give it control.
  2851.     true IBM PCs and most clones issue an INT 18 if neither floppy nor hard
  2852.       disk have a valid boot sector
  2853.     to accomplish a warm boot equivalent to Ctrl-Alt-Del, store 1234h in
  2854.       0040h:0072h and jump to FFFFh:0000h.    For a cold boot equivalent to
  2855.       a reset, store 0000h at 0040h:0072h before jumping.
  2856.     VDISK.SYS hooks this interrupt to allow applications to find out how
  2857.       much extended memory has been used by VDISKs (see #0546).  DOS 3.3+
  2858.       PRINT hooks INT 19 but does not set up a correct VDISK header block
  2859.       at the beginning of its INT 19 handler segment, thus causing some
  2860.       programs to overwrite extended memory which is already in use.
  2861.     the default handler is at F000h:E6F2h for 100% compatible BIOSes
  2862.     MS-DOS 3.2+ hangs on booting (even from floppy) if the hard disk
  2863.       contains extended partitions which point at each other in a loop,
  2864.       since it will never find the end of the linked list of extended
  2865.       partitions
  2866.     under Windows Real and Enhanced modes, calling INT 19 will hang the
  2867.       system in the same was as under bare DOS; under Windows Standard
  2868.       mode, INT 19 will successfully perform a cold reboot as it appears
  2869.       to have been redirected to a MOV AL,0FEh/OUT 64h,AL sequence
  2870. BUG:    when loading the remainder of the DOS system files fails, various
  2871.       versions of IBMBIO.COM/IO.SYS incorrectly restore INT 1E before
  2872.       calling INT 19, assuming that the boot sector had stored the
  2873.       contents of INT 1E at DS:SI instead of on the stack as it actually
  2874.       does
  2875. SeeAlso: INT 14/AH=17h,INT 18"BOOT HOOK",INT 49"Tandy 2000",INT 5B"PC Cluster"
  2876.  
  2877. Format of VDISK header block (at beginning of INT 19 handler's segment):
  2878. Offset    Size    Description    (Table 0546)
  2879.  00h 18 BYTEs    n/a (for VDISK.SYS, the device driver header)
  2880.  12h 11 BYTEs    signature string "VDISK     Vn.m" for VDISK.SYS version n.m
  2881.  1Dh 15 BYTEs    n/a
  2882.  2Ch  3 BYTEs    linear address of first byte of available extended memory
  2883.  
  2884. Format of hard disk master boot sector:
  2885. Offset    Size    Description    (Table 0547)
  2886.  00h 446 BYTEs    Master bootstrap loader code
  2887. 1BEh 16 BYTEs    partition record for partition 1 (see #0548)
  2888. 1CEh 16 BYTEs    partition record for partition 2
  2889. 1DEh 16 BYTEs    partition record for partition 3
  2890. 1EEh 16 BYTEs    partition record for partition 4
  2891. 1FEh    WORD    signature, AA55h indicates valid boot block
  2892.  
  2893. Format of partition record:
  2894. Offset    Size    Description    (Table 0548)
  2895.  00h    BYTE    boot indicator (80h = active partition)
  2896.  01h    BYTE    partition start head
  2897.  02h    BYTE    partition start sector (bits 0-5)
  2898.  03h    BYTE    partition start track (bits 8,9 in bits 6,7 of sector)
  2899.  04h    BYTE    operating system indicator (see #0549)
  2900.  05h    BYTE    partition end head
  2901.  06h    BYTE    partition end sector (bits 0-5)
  2902.  07h    BYTE    partition end track (bits 8,9 in bits 6,7 of sector)
  2903.  08h    DWORD    sectors preceding partition
  2904.  0Ch    DWORD    length of partition in sectors
  2905. SeeAlso: #0547
  2906.  
  2907. (Table 0549)
  2908. Values for operating system indicator:
  2909.  00h    empty
  2910.  01h    DOS 12-bit FAT
  2911.  02h    XENIX root file system
  2912.  03h    XENIX /usr file system (obsolete)
  2913.  04h    DOS 16-bit FAT (up to 32M)
  2914.  05h    DOS 3.3+ extended partition
  2915.  06h    DOS 3.31+ Large File System (16-bit FAT, over 32M)
  2916.  07h    QNX
  2917.  07h    OS/2 HPFS
  2918.  07h    Windows NT NTFS
  2919.  07h    Advanced Unix
  2920.  08h    OS/2 (v1.0-1.3 only)
  2921.  08h    AIX bootable partition, SplitDrive
  2922.  08h    Commodore DOS
  2923.  08h    DELL partition spanning multiple drives
  2924.  09h    AIX data partition
  2925.  09h    Coherent filesystem
  2926.  0Ah    OS/2 Boot Manager
  2927.  0Ah    OPUS
  2928.  0Ah    Coherent swap partition
  2929.  0Bh    Windows 95 with 32-bit FAT
  2930.  0Ch    Windows 95 with 32-bit FAT (using LBA-mode INT 13 extensions)
  2931.  0Eh    logical-block-addressable VFAT (same as 06h but using LBA-mode INT 13)
  2932.  0Fh    logical-block-addressable VFAT (same as 05h but using LBA-mode INT 13)
  2933.  10h    OPUS
  2934.  11h    OS/2 Boot Manager hidden 12-bit FAT partition
  2935.  12h    Compaq Diagnostics partition
  2936.  14h    (resulted from using Novell DOS 7.0 FDISK to delete Linux Native part)
  2937.  14h    OS/2 Boot Manager hidden sub-32M 16-bit FAT partition
  2938.  16h    OS/2 Boot Manager hidden over-32M 16-bit FAT partition
  2939.  17h    OS/2 Boot Manager hidden HPFS partition
  2940.  18h    AST special Windows swap file
  2941.  21h    officially listed as reserved
  2942.  23h    officially listed as reserved
  2943.  24h    NEC MS-DOS 3.x
  2944.  26h    officially listed as reserved
  2945.  31h    officially listed as reserved
  2946.  33h    officially listed as reserved
  2947.  34h    officially listed as reserved
  2948.  36h    officially listed as reserved
  2949.  38h    Theos
  2950.  3Ch    PowerQuest PartitionMagic recovery partition
  2951.  40h    VENIX 80286
  2952.  41h    Personal RISC Boot
  2953.  42h    SFS (Secure File System) by Peter Gutmann
  2954.  50h    OnTrack Disk Manager, read-only partition
  2955.  51h    OnTrack Disk Manager, read/write partition
  2956.  51h    NOVEL
  2957.  52h    CP/M
  2958.  52h    Microport System V/386
  2959.  53h    OnTrack Disk Manager, write-only partition???
  2960.  54h    OnTrack Disk Manager (DDO)
  2961.  56h    GoldenBow VFeature
  2962.  61h    SpeedStor
  2963.  63h    Unix SysV/386, 386/ix
  2964.  63h    Mach, MtXinu BSD 4.3 on Mach
  2965.  63h    GNU HURD
  2966.  64h    Novell NetWare 286
  2967.  65h    Novell NetWare (3.11)
  2968.  67h    Novell
  2969.  68h    Novell
  2970.  69h    Novell
  2971.  70h    DiskSecure Multi-Boot
  2972.  71h    officially listed as reserved
  2973.  73h    officially listed as reserved
  2974.  74h    officially listed as reserved
  2975.  75h    PC/IX
  2976.  76h    officially listed as reserved
  2977.  80h    Minix v1.1 - 1.4a
  2978.  81h    Minix v1.4b+
  2979.  81h    Linux
  2980.  81h    Mitac Advanced Disk Manager
  2981.  82h    Linux Swap partition
  2982.  82h    Prime
  2983.  83h    Linux native file system (ext2fs/xiafs)
  2984.  84h    OS/2-renumbered type 04h partition (related to hiding DOS C: drive)
  2985.  86h    officially listed as reserved
  2986.  87h    HPFS Fault-Tolerant mirrored partition
  2987.  93h    Amoeba file system
  2988.  94h    Amoeba bad block table
  2989.  A1h    officially listed as reserved
  2990.  A3h    officially listed as reserved
  2991.  A4h    officially listed as reserved
  2992.  A5h    FreeBSD, BSD/386
  2993.  A6h    officially listed as reserved
  2994.  B1h    officially listed as reserved
  2995.  B3h    officially listed as reserved
  2996.  B4h    officially listed as reserved
  2997.  B6h    officially listed as reserved
  2998.  B7h    BSDI file system (secondarily swap)
  2999.  B8h    BSDI swap partition (secondarily file system)
  3000.  C1h    DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition
  3001.  C4h    DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition
  3002.  C6h    DR DOS 6.0 LOGIN.EXE-secured Huge partition
  3003.  C7h    Syrinx Boot
  3004.  D8h    CP/M-86
  3005.  DBh    CP/M, Concurrent CP/M, Concurrent DOS
  3006.  DBh    CTOS (Convergent Technologies OS)
  3007.  E1h    SpeedStor 12-bit FAT extended partition
  3008.  E3h    DOS read-only
  3009.  E3h    Storage Dimensions
  3010.  E4h    SpeedStor 16-bit FAT extended partition
  3011.  E5h    officially listed as reserved
  3012.  E6h    officially listed as reserved
  3013.  F1h    Storage Dimensions
  3014.  F2h    DOS 3.3+ secondary partition
  3015.  F3h    officially listed as reserved
  3016.  F4h    SpeedStor
  3017.  F4h    Storage Dimensions
  3018.  F6h    officially listed as reserved
  3019.  FEh    LANstep
  3020.  FEh    IBM PS/2 IML
  3021.  FFh    Xenix bad block table
  3022. Note:    for partition type 07h, one should inspect the partition boot record
  3023.       for the actual file system type
  3024. SeeAlso: #0548
  3025. --------B-1A00-------------------------------
  3026. INT 1A - TIME - GET SYSTEM TIME
  3027.     AH = 00h
  3028. Return: CX:DX = number of clock ticks since midnight
  3029.     AL = midnight flag, nonzero if midnight passed since time last read
  3030. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  3031.       (except on Tandy 2000, where the clock runs at 20 ticks per second)
  3032.     IBM and many clone BIOSes set the flag for AL rather than incrementing
  3033.       it, leading to loss of a day if two consecutive midnights pass
  3034.       without a request for the time (e.g. if the system is on but idle)
  3035.     since the midnight flag is cleared, if an application calls this
  3036.       function after midnight before DOS does, DOS will not receive the
  3037.       midnight flag and will fail to advance the date
  3038. SeeAlso: AH=01h,AH=02h,INT 21/AH=2Ch,INT 55"Tandy 2000",INT 4E/AH=02h"TI"
  3039. SeeAlso: INT 62/AX=0099h,MEM 0040h:006Ch
  3040. --------B-1A01-------------------------------
  3041. INT 1A - TIME - SET SYSTEM TIME
  3042.     AH = 01h
  3043.     CX:DX = number of clock ticks since midnight
  3044. Return: nothing
  3045. Notes:    there are approximately 18.2 clock ticks per second, 1800B0h per 24 hrs
  3046.       (except on Tandy 2000, where the clock runs at 20 ticks per second)
  3047.     this call resets the midnight-passed flag
  3048. SeeAlso: AH=00h,AH=03h,INT 21/AH=2Dh
  3049. --------B-1A02-------------------------------
  3050. INT 1A - TIME - GET REAL-TIME CLOCK TIME (AT,XT286,PS)
  3051.     AH = 02h
  3052. Return: CF clear if successful
  3053.         CH = hour (BCD)
  3054.         CL = minutes (BCD)
  3055.         DH = seconds (BCD)
  3056.         DL = daylight savings flag (00h standard time, 01h daylight time)
  3057.     CF set on error (i.e. clock not running or in middle of update)
  3058. Note:    this function is also supported by the Sperry PC, which predates the
  3059.       IBM AT; the data is returned in binary rather than BCD on the Sperry,
  3060.       and DL is always 00h
  3061. SeeAlso: AH=00h,AH=03h,AH=04h,INT 21/AH=2Ch
  3062. --------b-1A02-------------------------------
  3063. INT 1A - Tandy 2000 - TIME - GET DATE AND TIME
  3064.     AH = 02h
  3065. Return: BX = number of days since January 1, 1980
  3066.     CH = hours
  3067.     CL = minutes
  3068.     DH = seconds
  3069.     DL = hundredths
  3070. SeeAlso: AH=03h"Tandy 2000",INT 55"Tandy 2000"
  3071. --------B-1A03-------------------------------
  3072. INT 1A - TIME - SET REAL-TIME CLOCK TIME (AT,XT286,PS)
  3073.     AH = 03h
  3074.     CH = hour (BCD)
  3075.     CL = minutes (BCD)
  3076.     DH = seconds (BCD)
  3077.     DL = daylight savings flag (00h standard time, 01h daylight time)
  3078. Return: nothing
  3079. Note:    this function is also supported by the Sperry PC, which predates the
  3080.       IBM AT; the data is specified in binary rather than BCD on the
  3081.       Sperry, and the value of DL is ignored
  3082. SeeAlso: AH=01h,AH=03h,AH=05h,INT 21/AH=2Dh,INT 4B/AH=01h
  3083. --------b-1A03-------------------------------
  3084. INT 1A - Tandy 2000 - TIME - SET DATE AND TIME
  3085.     AH = 03h
  3086.     BX = number of days since January 1, 1980
  3087.     CH = hours
  3088.     CL = minutes
  3089.     DH = seconds
  3090.     DL = hundredths
  3091. Return: nothing
  3092. SeeAlso: AH=02h"Tandy 2000",INT 55"Tandy 2000"
  3093. --------B-1A04-------------------------------
  3094. INT 1A - TIME - GET REAL-TIME CLOCK DATE (AT,XT286,PS)
  3095.     AH = 04h
  3096. Return: CF clear if successful
  3097.         CH = century (BCD)
  3098.         CL = year (BCD)
  3099.         DH = month (BCD)
  3100.         DL = day (BCD)
  3101.     CF set on error
  3102. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  3103. --------b-1A04-------------------------------
  3104. INT 1A - Sperry PC - GET REAL-TIME CLOCK DATE
  3105.     AH = 04h
  3106. Return: CF clear if successful
  3107.         CL = year-1980
  3108.         DH = month (binary) (01h-0Ch)
  3109.         DL = day (binary) (01h-1Fh)
  3110.     CF set on error
  3111. SeeAlso: AH=02h,AH=04h,AH=05h"Sperry",INT 21/AH=2Ah,INT 4B/AH=02h"TI"
  3112. --------B-1A05-------------------------------
  3113. INT 1A - TIME - SET REAL-TIME CLOCK DATE (AT,XT286,PS)
  3114.     AH = 05h
  3115.     CH = century (BCD)
  3116.     CL = year (BCD)
  3117.     DH = month (BCD)
  3118.     DL = day (BCD)
  3119. Return: nothing
  3120. SeeAlso: AH=04h,INT 21/AH=2Bh"DATE",INT 4B/AH=00h"TI"
  3121. --------b-1A05-------------------------------
  3122. INT 1A - Sperry PC - SET REAL-TIME CLOCK DATE
  3123.     AH = 05h
  3124.     CL = year-1980
  3125.     CH = 00h (???)
  3126.     DH = month (binary) (01h-0Ch)
  3127.     DL = day (binary) (01h-1Fh)
  3128. Return: nothing
  3129. SeeAlso: AH=02h,AH=04h"Sperry",AH=05h,INT 21/AH=2Bh"DATE"
  3130. --------B-1A06-------------------------------
  3131. INT 1A - TIME - SET ALARM (AT,XT286,PS)
  3132.     AH = 06h
  3133.     CH = hour (BCD)
  3134.     CL = minutes (BCD)
  3135.     DH = seconds (BCD)
  3136. Return: CF set on error (alarm already set or clock stopped for update)
  3137.     CF clear if successful
  3138. Notes:    the alarm occurs every 24 hours until turned off, invoking INT 4A each
  3139.       time
  3140.     the BIOS does not check for invalid values for the time, so the CMOS
  3141.       clock chip's "don't care" setting (any values between C0h and FFh)
  3142.       may be used for any or all three parts.  For example, to create an
  3143.       alarm once a minute, every minute, call with CH=FFh, CL=FFh, and
  3144.       DH=00h.
  3145. SeeAlso: AH=07h,INT 4A"SYSTEM"
  3146. --------B-1A07-------------------------------
  3147. INT 1A - TIME - CANCEL ALARM (AT,XT286,PS)
  3148.     AH = 07h
  3149. Return: alarm disabled
  3150. Note:    does not disable the real-time clock's IRQ
  3151. SeeAlso: AH=06h,INT 70
  3152. --------B-1A08-------------------------------
  3153. INT 1A - TIME - SET RTC ACTIVATED POWER ON MODE (CONVERTIBLE)
  3154.     AH = 08h
  3155.     CH = hours in BCD
  3156.     CL = minutes in BCD
  3157.     DH = seconds in BCD
  3158. SeeAlso: AH=09h
  3159. --------B-1A09-------------------------------
  3160. INT 1A - TIME - READ RTC ALARM TIME AND STATUS (CONV,PS30)
  3161.     AH = 09h
  3162. Return: CH = hours in BCD
  3163.     CL = minutes in BCD
  3164.     DH = seconds in BCD
  3165.     DL = alarm status
  3166.         00h alarm not enabled
  3167.         01h alarm enabled but will not power up system
  3168.         02h alarm will power up system
  3169. SeeAlso: AH=08h
  3170. --------B-1A0A-------------------------------
  3171. INT 1A - TIME - READ SYSTEM-TIMER DAY COUNTER (XT2,PS)
  3172.     AH = 0Ah
  3173. Return: CF set on error
  3174.     CF clear if successful
  3175.         CX = count of days since Jan 1,1980
  3176. SeeAlso: AH=04h,AH=0Bh
  3177. --------B-1A0B-------------------------------
  3178. INT 1A - TIME - SET SYSTEM-TIMER DAY COUNTER (XT2,PS)
  3179.     AH = 0Bh
  3180.     CX = count of days since Jan 1,1980
  3181. Return: CF set on error
  3182.     CF clear if successful
  3183. SeeAlso: AH=05h,AH=0Ah
  3184. --------J-1A10-------------------------------
  3185. INT 1A - NEC PC-9800 series - PRINTER - INITIALIZE
  3186.     AH = 10h
  3187.     ???
  3188. Return: ???
  3189. SeeAlso: AH=11h,AH=12h,INT 17/AH=01h
  3190. --------J-1A1000-----------------------------
  3191. INT 1A - NEC PC-9800 series - INSTALLATION CHECK
  3192.     AX = 1000h
  3193. Return: AX <> 1000h if NEC
  3194. --------J-1A11-------------------------------
  3195. INT 1A - NEC PC-9800 series - PRINTER - OUTPUT CHARACTER
  3196.     AH = 11h
  3197.     ???
  3198. Return: ???
  3199. SeeAlso: AH=10h,AH=12h,INT 17/AH=00h
  3200. --------J-1A12-------------------------------
  3201. INT 1A - NEC PC-9800 series - PRINTER - SENSE STATUS
  3202.     AH = 12h
  3203.     ???
  3204. Return: ???
  3205. SeeAlso: AH=10h,AH=11h,INT 17/AH=02h
  3206. --------A-1A3601-----------------------------
  3207. INT 1A - WORD PERFECT v5.0 Third Party Interface - INSTALLATION CHECK
  3208.     AX = 3601h
  3209. Return: DS:SI = routine to monitor keyboard input, immediately preceded by the
  3210.         ASCIZ string "WPCORP\0"
  3211. Notes:    WordPerfect 5.0 will call this interrupt at start up to determine if a
  3212.       third party product wants to interface with it.  The third party
  3213.       product must intercept this interrupt and return the address of a
  3214.       keyboard monitor routine.
  3215.     Before checking for keyboard input, and after every key entered by the
  3216.       user, Word Perfect will call the routine whose address was provided
  3217.       in DS:SI with the following parameters:
  3218.         Entry:    AX = key code or 0
  3219.             BX = WordPerfect state flag
  3220.         Exit:    AX = 0 or key code
  3221.             BX = 0 or segment address of buffer with key codes
  3222.     See the "WordPerfect 5.0 Developer's Toolkit" for further information.
  3223. SeeAlso: INT 16/AX=5500h
  3224. --------N-1A6108-----------------------------
  3225. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDWITHREPLY" - SEND MSG AND GET REPLY
  3226.     AX = 6108h
  3227.     STACK:    WORD    conversation ID (0000h-0009h)
  3228.         DWORD    pointer to message buffer
  3229.         WORD    length of message
  3230.         DWORD    pointer to reply buffer
  3231.         WORD    length of reply buffer
  3232.         WORD    0000h (use default "Cparams" structure)
  3233. Return: AX = status (see #0550)
  3234.     STACK unchanged
  3235. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3236.       which implements the Simple Network Application Protocol
  3237. SeeAlso: AX=6205h
  3238.  
  3239. (Table 0550)
  3240. Values for SNAP.EXE status:
  3241.  0000h    successful
  3242.  F830h    "SNAP_ABORTED"
  3243.  FC04h    "SNAP_SERVERDIED"
  3244.  FC05h    "SNAP_RESEND"
  3245.  FC06h    "SNAP_SELECTFAILED"
  3246.  FC07h    "SNAP_WRONGVERSION"
  3247.  FC08h    "SNAP_INVALIDACK"
  3248.  FC09h    "SNAP_TIMEOUT"
  3249.  FC0Ah    "SNAP_SERVERREJECT"
  3250.  FC0Bh    "SNAP_NOREPLYDUE"
  3251.  FC0Ch    "SNAP_NOAUTHENTICATE"/"SNAP_GUARDIAN_ERROR"
  3252.  FC0Dh    "SNAP_NOINIT"
  3253.  FC0Eh    "SNAP_SOCKETERROR"
  3254.  FC0Fh    "SNAP_BUFFERLIMIT"
  3255.  FC10h    "SNAP_INVALIDCID"
  3256.  FC11h    "SNAP_INVALIDOP"
  3257.  FC12h    "SNAP_XMITFAIL"
  3258.  FC13h    "SNAP_NOMORERETRIES"
  3259.  FC14h    "SNAP_BADPARMS"
  3260.  FC15h    "SNAP_NOMEMORY"
  3261.  FC16h    "SNAP_NOMORECONVS"
  3262.  FFFFh    failed (invalid function/parameter)
  3263. --------N-1A6205-----------------------------
  3264. INT 1A - SNAP.EXE 3.2+ - "SNAP_SENDNOREPLY" - SEND MSG, DON'T AWAIT REPLY
  3265.     AX = 6205h
  3266.     STACK:    WORD    conversation ID (0000h-0009h)
  3267.         DWORD    pointer to message
  3268.         WORD    length of message
  3269.         WORD    0000h (use default "Cparms" structure)
  3270. Return: AX = status (see #0550)
  3271.     STACK unchanged
  3272. SeeAlso: AX=6108h
  3273. --------N-1A6308-----------------------------
  3274. INT 1A - SNAP.EXE 3.2+ - "SNAP_BEGINCONV" - BEGIN CONVERSATION
  3275.     AX = 6308h
  3276.     STACK:    WORD    offset of ASCIZ "guardian"
  3277.         WORD    offset of ASCIZ hostname
  3278.         WORD    offset of ASCIZ server name
  3279.         WORD    offset of ASCIZ userid
  3280.         WORD    offset of ASCIZ password
  3281.         WORD    offset of password length
  3282.         WORD    offset of password type
  3283.         WORD    offset of "Cparms" structure (see #0551)
  3284. Return: ???
  3285.     STACK unchanged
  3286. Note:    all stacked offsets are within the SNAP data segment (use AX=6A01h
  3287.       to allocate a buffer)
  3288. SeeAlso: AX=6405h,AX=7202h
  3289.  
  3290. Format of SNAP.EXE Cparms structure:
  3291. Offset    Size    Description    (Table 0551)
  3292.  00h    WORD    retry delay in seconds
  3293.  02h    WORD    timeout delay in seconds
  3294.  04h    WORD    maximum buffer size
  3295.  06h    WORD    encryption level
  3296. --------N-1A6405-----------------------------
  3297. INT 1A - SNAP.EXE 3.2+ - "SNAP_ENDCONV" - END CONVERSATION
  3298.     AX = 6405h
  3299.     STACK:    WORD    conversation ID (0000h-0009h)
  3300.         DWORD    pointer to message buffer
  3301.         WORD    length of message
  3302.         WORD    0000h (use default "Cparms" structure)
  3303. Return: AX = status (see #0550)
  3304.     STACK unchanged
  3305. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3306.       which implements the Simple Network Application Protocol
  3307. SeeAlso: AX=6308h
  3308. --------N-1A6900-----------------------------
  3309. INT 1A - SNAP.EXE 3.2+ - "SNAP_DATASEG" - GET RESIDENT DATA SEGMENT
  3310.     AX = 6900h
  3311. Return: AX = value used for DS by resident code
  3312. SeeAlso: AX=6A01h,AX=6F01h
  3313. --------N-1A6A01-----------------------------
  3314. INT 1A - SNAP.EXE 3.2+ - "SNAP_ALLOC" - ALLOCATE BUFFER IN SNAP DATA SEGMENT
  3315.     AX = 6A01h
  3316.     STACK:    WORD    number of bytes to allocate
  3317. Return: AX = offset of allocated buffer or 0000h if out of memory
  3318.     STACK unchanged
  3319. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3320.       which implements the Simple Network Application Protocol
  3321. SeeAlso: AX=6B01h
  3322. --------N-1A6B01-----------------------------
  3323. INT 1A - SNAP.EXE 3.2+ - "SNAP_FREE" - DEALLOCATE BUFFER IN SNAP DATA SEGMENT
  3324.     AX = 6B01h
  3325.     STACK:    WORD    offset within SNAP data segment of previously allocated
  3326.             buffer
  3327. Return: STACK unchanged
  3328. Note:    this call is a NOP if the specified offset is 0000h
  3329. SeeAlso: AX=6A01h
  3330. --------N-1A6C04-----------------------------
  3331. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYTO" - COPY DATA TO RESIDENT SNAP PACKAGE
  3332.     AX = 6C04h
  3333.     STACK:    WORD    offset within SNAP data segment of dest (nonzero)
  3334.         WORD    segment of source buffer
  3335.         WORD    offset of source buffer
  3336.         WORD    number of bytes to copy
  3337. Return: AX = offset of byte after last one copied to destination
  3338.     STACK unchanged
  3339. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3340.       which implements the Simple Network Application Protocol
  3341. SeeAlso: AX=6D04h
  3342. --------N-1A6D04-----------------------------
  3343. INT 1A - SNAP.EXE 3.2+ - "SNAP_COPYFROM" - COPY DATA FROM RESIDENT SNAP PACKAGE
  3344.     AX = 6D04h
  3345.     STACK:    WORD    offset within SNAP data segment of source buffer
  3346.         WORD    segment of destination buffer
  3347.         WORD    offset of destination buffer
  3348.         WORD    number of bytes to copy
  3349. Return: AX = offset of byte after last one copied from source
  3350.     buffer filled
  3351.     STACK unchanged
  3352. SeeAlso: AX=6C04h
  3353. --------N-1A6E01-----------------------------
  3354. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETDEBUG" - SET ???
  3355.     AX = 6E01h
  3356.     STACK:    WORD    new value for ???
  3357. Return: AX = old value of ???
  3358.     STACK unchanged
  3359. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3360.       which implements the Simple Network Application Protocol
  3361. --------N-1A6F01-----------------------------
  3362. INT 1A - SNAP.EXE 3.2+ - "SNAP_CHKINSTALL" - INSTALLATION CHECK
  3363.     AX = 6F01h
  3364.     STACK: WORD 0000h
  3365. Return: AX = status
  3366.         0000h SNAP is resident
  3367.         other SNAP not present
  3368.     STACK unchanged
  3369. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3370.       which implements the Simple Network Application Protocol, and is
  3371.       required by PCVENUS (a network shell).  The combination of SNAP and
  3372.       PCVENUS allows the use of the Andrew File System as one or more
  3373.       networked drives.
  3374. SeeAlso: AX=6900h,AX=7400h
  3375. --------N-1A7002-----------------------------
  3376. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETANCHOR"
  3377.     AX = 7002h
  3378.     STACK:    WORD    anchor number (0000h-0009h)
  3379.         WORD    new value for the anchor
  3380. Return: AX = status
  3381.         0000h successful
  3382.         FFFFh failed (top word on stack not in range 00h-09h)
  3383.     STACK unchanged
  3384. SeeAlso: AX=7101h
  3385. --------N-1A7101-----------------------------
  3386. INT 1A - SNAP.EXE 3.2+ - "SNAP_GETANCHOR"
  3387.     AX = 7101h
  3388.     STACK:    WORD    anchor number (0000h-0009h)
  3389. Return: AX = anchor's value
  3390.     STACK unchanged
  3391. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3392.       which implements the Simple Network Application Protocol
  3393. SeeAlso: AX=7002h
  3394. --------N-1A7202-----------------------------
  3395. INT 1A - SNAP.EXE 3.2+ - "SNAP_SETCONVPARMS" - SET CONVERSATION PARAMETERS
  3396.     AX = 7202h
  3397.     STACK:    WORD    conversation ID (0000h-0009h)
  3398.         WORD    offset within resident data segment of "Cparms"
  3399.               structure (see #0551)
  3400. Return: AX = status???
  3401.     STACK unchanged
  3402. SeeAlso: AX=6308h
  3403. --------N-1A7302-----------------------------
  3404. INT 1A - SNAP.EXE 3.2+ - "SNAP_CLIENTVERSION" - ???
  3405.     AX = 7302h
  3406.     STACK:    WORD    conversation ID (0000h-0009h)
  3407.         WORD    offset within resident data segment of ???
  3408. Return: AX = ???
  3409.     ???
  3410.     STACK unchanged
  3411. SeeAlso: AX=7400h
  3412. --------N-1A7400-----------------------------
  3413. INT 1A - SNAP.EXE 3.2+ - "SNAP_VERSION" - GET VERSION
  3414.     AX = 7400h
  3415. Return: AX = version (AH=major, AL=minor)
  3416. Note:    this call is only valid if SNAP is installed
  3417. SeeAlso: AX=7302h,INT 1A/AX=6F01h
  3418. --------N-1A75-------------------------------
  3419. INT 1A - SNAP.EXE 3.2+ - "SNAP_NOP" - ???
  3420.     AH = 75h
  3421.     AL = ???
  3422. Return: AX = ??? (0000h)
  3423. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3424.       which implements the Simple Network Application Protocol
  3425. --------N-1A76-------------------------------
  3426. INT 1A - SNAP.EXE 3.2+ - "SNAP_802_5" - ???
  3427.     AH = 76h
  3428.     AL = ???
  3429. Return: AX = ???
  3430. --------N-1A77-------------------------------
  3431. INT 1A - SNAP.EXE 3.4 - ???
  3432.     AH = 77h
  3433.     AL = ??? (at least 01h)
  3434.     STACK:    WORD    ???
  3435.         ???
  3436. Return: ???
  3437.     STACK unchanged
  3438. --------N-1A7802-----------------------------
  3439. INT 1A - SNAP.EXE 3.4 - ???
  3440.     AX = 7802h
  3441.     STACK:    WORD    ???
  3442.         WORD    ???
  3443. Return: ???
  3444.     STACK unchanged
  3445. Program: SNAP.EXE is a TSR written by IBM and Carnegie Mellon University
  3446.       which implements the Simple Network Application Protocol
  3447. --------s-1A7F-------------------------------
  3448. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  3449.     AH = 7Fh
  3450.     ???
  3451. Return: ???
  3452. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  3453. SeeAlso: AH=80h,AH=83h,AH=85h
  3454. --------s-1A80-------------------------------
  3455. INT 1A - PCjr, Tandy 2500???, Tandy 1000SL/TL - SET UP SOUND MULTIPLEXOR
  3456.     AH = 80h
  3457.     AL = 00h source is 8253 channel 2
  3458.          01h source is cassette input
  3459.          02h source is I/O channel "Audio IN"
  3460.          03h source is sound generator chip
  3461. Note:    although documented in the 1000TL Technical Reference, the 1000TL
  3462.       BIOS has just an IRET for this call
  3463. SeeAlso: AH=7Fh,AH=83h
  3464. --------X-1A80-------------------------------
  3465. INT 1A - PCMCIA Socket Services v1.00 - GET NUMBER OF ADAPTERS
  3466.     AH = 80h
  3467. Return: CF clear if successful
  3468.         CX = 5353h ('SS') if Socket Services installed
  3469.         AL = number of adapters present (0-16)
  3470.         AH destroyed
  3471.     CF set on error
  3472.         AH = error code (see #0552)
  3473. SeeAlso: AH=83h"PCMCIA"
  3474.  
  3475. (Table 0552)
  3476. Values for PCMCIA error codes:
  3477.  01h    "BAD_ADAPTER" nonexistent adapter
  3478.  02h    "BAD_ATTRIBUTE" invalid attribute specified
  3479.  03h    "BAD_BASE" invalid system memory base address
  3480.  04h    "BAD_EDC" invalid EDC generator specified
  3481.  05h    "BAD_INDICATOR" invalid indicator specified
  3482.  06h    "BAD_IRQ" invalid IRQ channel specified
  3483.  07h    "BAD_OFFSET" invalid PCMCIA card offset specified
  3484.  08h    "BAD_PAGE" invalid page specified
  3485.  09h    "BAD_READ" unable to complete request
  3486.  0Ah    "BAD_SIZE" invalid window size specified
  3487.  0Bh    "BAD_SOCKET" nonexistent socket specified
  3488.  0Ch    "BAD_TECHNOLOGY" unsupported Card Technology for writes
  3489.  0Dh    "BAD_TYPE" unavailable window type specified
  3490.  0Eh    "BAD_VCC" invalid Vcc power level index specified
  3491.  0Fh    "BAD_VPP" invalid Vpp1 or Vpp2 power level index specified
  3492.  10h    "BAD_WAIT" invalid number of wait states specified
  3493.  11h    "BAD_WINDOW" nonexistent window specified
  3494.  12h    "BAD_WRITE" unable to complete request
  3495.  13h    "NO_ADAPTERS" no adapters installed, but Socket Services is present
  3496.  14h    "NO_CARD" no card in socket
  3497.  15h    function not supported
  3498.  16h    invalid mode
  3499.  17h    invalid speed
  3500.  18h    busy
  3501. --------X-1A81-------------------------------
  3502. INT 1A - PCMCIA Socket Services v1.00 - REGISTER STATUS CHANGE CALLBACK
  3503.     AH = 81h
  3504.     DS:DX -> callback routine (see #0553) or 0000h:0000h to disable
  3505. Return: CF clear if successful
  3506.         AH destroyed
  3507.     CF set on error
  3508.         AH = error code (see #0552)
  3509. Note:    the callback will be invoked on any socket changes whose notification
  3510.       has not been disabled with the status change enable mask; it may be
  3511.       invoked either while processing a hardware interrupt from the adapter
  3512.       or while processing the following Socket Services request
  3513. SeeAlso: AH=80h"PCMCIA",AH=82h"PCMCIA"
  3514.  
  3515. (Table 0553)
  3516. Values PCMCIA callback routine is invoked with:
  3517.     AL = adapter number
  3518.     BH = status change interrupt enable mask (see #0554)
  3519.     BL = socket number
  3520.     DH = current socket status (see #0555)
  3521.     DL = current card status (see #0556)
  3522. Return: all registers preserved
  3523. Notes:    the callback may be invoked during a hardware interrupt, and may not
  3524.       call on Socket Services
  3525.     the callback will be invoked once for each socket with a status change
  3526.  
  3527. Bitfields for PCMCIA status change interrupt enable mask:
  3528. Bit(s)    Description    (Table 0554)
  3529.  7    card detect change
  3530.  6    ready change
  3531.  5    battery warning change
  3532.  4    battery dead change
  3533.  3    insertion request
  3534.  2    ejection request
  3535.  1-0    reserved (0)
  3536.  
  3537. Bitfields for PCMCIA current socket status:
  3538. Bit(s)    Description    (Table 0555)
  3539.  7    card changed
  3540.  6    reserved (0)
  3541.  5    card insertion complete
  3542.  4    card ejection complete
  3543.  3    card insertion request pending
  3544.  2    card ejection request pending
  3545.  1    card locked
  3546.  0    reserved (0)
  3547.  
  3548. Bitfields for PCMCIA current card status:
  3549. Bit(s)    Description    (Table 0556)
  3550.  7    card detect
  3551.  6    ready
  3552.  5    battery voltage detect 2 (battery warning)
  3553.  4    battery voltage detect 1 (battery dead)
  3554.  3-1    reserved (0)
  3555.  0    write protected
  3556. --------s-1A8100-----------------------------
  3557. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND - INSTALLATION CHECK
  3558.     AX = 8100h
  3559. Return: AL > 80h if supported
  3560.     AX = 00C4h if supported (1000SL/TL)
  3561.         CF set if sound chip is busy
  3562.         CF clear  if sound chip is free
  3563. Note:    the value of CF is not definitive; call this function until CF is
  3564.       clear on return, then call AH=84h"Tandy"
  3565. --------s-1A82-------------------------------
  3566. INT 1A - Tandy 2500???, Tandy 1000SL/TL - DIGITAL SOUND - RECORD SOUND
  3567.     AH = 82h
  3568.     ES:BX -> buffer for sound samples
  3569.     CX = length of buffer
  3570.     DX = transfer rate (1-4095, 1 is fastest)
  3571. Return: AH = 00h
  3572.     CF set if sound busy
  3573.     CF clear if sound chip free
  3574. Note:    the value in DX should be 1/10 the corresponding value for
  3575.       INT 1A/AH=83h on the 1000TL, 1/11.5 on the 1000SL.  Call
  3576.       INT 1A/AX=8100h and INT 1A/AH=84h before invoking this function.
  3577.     The BIOS issues an INT 15/AX=91FBh when the input is complete
  3578.     DMA across a 64K boundary is masked by the BIOS
  3579. --------X-1A82-------------------------------
  3580. INT 1A - PCMCIA Socket Services v1.00 - REGISTER CARD TECHNOLOGY CALLBACK
  3581.     AH = 82h
  3582.     DS:DX -> callback routine (see #0557) or 0000h:0000h
  3583. Return: CF clear if successful
  3584.         AH destroyed
  3585.     CF set on error
  3586.         AH = error code (see #0552)
  3587. Note:    the callback is invoked on a Write Multiple request with an unsupported
  3588.       card technology type
  3589. SeeAlso: AH=81h"PCMCIA",AH=94h
  3590.  
  3591. (Table 0557)
  3592. Values PCMCIA callback routine is invoked with:
  3593.     ES:AX -> Low-Level Socket Services Routines (see #0559)
  3594.     BH = socket attributes (see #0558)
  3595.     CX = number of bytes or words to write
  3596.     DS:SI -> data buffer to be written
  3597.     DX:DI -> 26-bit linear card address
  3598.     BP = card technology type
  3599. Return: CF clear if successful
  3600.     CF set on error
  3601.         AH = error code (07h,0Ch,12h,14h) (see #0552)
  3602.  
  3603. Bitfields for PCMCIA socket attributes:
  3604. Bit(s)    Description    (Table 0558)
  3605.  7-4    reserved (0)
  3606.  3    packed buffer
  3607.  2    even bytes only (only valid if 1 set)
  3608.  1    data width (clear = byte, set = word)
  3609.  0    memory type (clear = common, set = attribute)
  3610.  
  3611. Format of PCMCIA Low-Level Socket Services Routines:
  3612. Offset    Size    Description    (Table 0559)
  3613.  00h    WORD    offset of Write Many routine (see #0560)
  3614.  02h    WORD    offset of Write One routine (see #0561)
  3615.  04h    WORD    offset of Read One routine (see #0562)
  3616.  06h    WORD    offset of Increment Offset routine (see #0563)
  3617.  08h    WORD    offset of Set Offset routine (see #0564)
  3618.  0Ah    WORD    offset of Get Status routine (see #0565)
  3619.  
  3620. (Table 0560)
  3621. Call Write Many routine with:
  3622.     BH = socket attributes (see #0558)
  3623.     CX = number of bytes or words to write
  3624.     DS:SI -> data to be written
  3625. Return: CF clear if successful
  3626.     CF set on error
  3627.  
  3628. (Table 0561)
  3629. Call Write One routine with:
  3630.     AL/AX = data to be written
  3631.     BH = socket attributes (see #0558)
  3632. Return: CF clear if successful
  3633.     CF set on error
  3634.  
  3635. (Table 0562)
  3636. Call Read One routine with:
  3637.     BH = socket attributes (see #0558)
  3638. Return: CF clear if successful
  3639.         AL/AX = data read
  3640.     CF set on error
  3641.  
  3642. (Table 0563)
  3643. Call Increment Offset routine with:
  3644.     BH = socket attributes (see #0558)
  3645. Return: CF clear if successful
  3646.     CF set on error
  3647.  
  3648. (Table 0564)
  3649. Call Set Offset routine with:
  3650.     DX:DI = new offset address
  3651. Return: CF clear if successful
  3652.     CF set on error
  3653.  
  3654. (Table 0565)
  3655. Call Get Status routine with:
  3656.     nothing
  3657. Return: AL = current card status (see #0556)
  3658. --------s-1A83-------------------------------
  3659. INT 1A - Tandy 2500, Tandy 1000L series - START PLAYING DIGITAL SOUND
  3660.     AH = 83h
  3661.     AL = volume (0=silence, 7=highest)
  3662.     CX = number of bytes to play
  3663.     DX = time between sound samples (multiples of 273 nanoseconds)
  3664.         only bits 11-0 used
  3665.     ES:BX -> sound data (array of 8-bit unsigned PCM samples)
  3666. Return: AH = 00h
  3667.     CF set if sound is busy
  3668.     CF clear if sound chip is free
  3669. Notes:    this call returns immediately while the sound plays in the
  3670.       background; the sound chip is clocked at 3.57 MHz, with the low 12
  3671.       bits of DX specifying the clock divisor
  3672.     The BIOS appears to call INT 15/AX=91FBh when the sound device
  3673.       underflows to allow another INT 1A/AH=83h for seamless playing of
  3674.       long sounds.
  3675. SeeAlso: AH=84h"Tandy",INT 15/AH=91h
  3676. --------X-1A83-------------------------------
  3677. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET SERVICES VERSION NUMBER
  3678.     AH = 83h
  3679.     AL = adapter number
  3680. Return: CF clear if successful
  3681.         AX = Socket Services version (BCD)
  3682.         BX = implementation version (BCD)
  3683.         CX = 5353h ("SS")
  3684.         DS:SI -> ASCIZ implementor description
  3685.     CF set on error
  3686.         AH = error code (01h) (see #0552)
  3687. Note:    the current version (from the Revision A.00 documentation) of Socket
  3688.       Services is 1.00 (AX=0100h)
  3689. SeeAlso: AH=80h"PCMCIA"
  3690. --------s-1A84-------------------------------
  3691. INT 1A - Tandy 2500, Tandy 1000L series - STOP PLAYING DIGITAL SOUND
  3692.     AH = 84h
  3693. Return: ???
  3694. Note:    the BIOS will call INT 15/AX=91FBh when the sound has stopped playing
  3695. SeeAlso: AH=83h"Tandy",AH=85h"Tandy"
  3696. --------X-1A84-------------------------------
  3697. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ADAPTER
  3698.     AH = 84h
  3699.     AL = adapter number
  3700. Return: CF clear if successful
  3701.         AH destroyed
  3702.         BH = number of windows
  3703.         BL = number of sockets (1-16)
  3704.         CX = number of EDCs
  3705.         DH = capabilities (see #0566)
  3706.         DL = status change interrupt used (only if DH bit 3 set)(see #0567)
  3707.     CF set on error
  3708.         AH = error code (01h) (see #0552)
  3709. SeeAlso: AH=80h"PCMCIA",AH=85h"PCMCIA",AH=87h
  3710.  
  3711. Bitfields for PCMCIA capabilities:
  3712. Bit(s)    Description    (Table 0566)
  3713.  7-6    reserved (0)
  3714.  5    status change interrupt is hardware shareable
  3715.  4    status change interrupt is software shareable
  3716.  3    status change interrupt
  3717.  2    data bus width is per-socket rather than per-window
  3718.  1    power management is per-adapter rather than per-socket
  3719.  0    indicators are per-adapter rather than per-socket
  3720.  
  3721. (Table 0567)
  3722. Values for PCMCIA status change interrupt usage:
  3723.  00h-0Fh IRQ level
  3724.  10h    NMI
  3725.  11h    I/O check
  3726.  12h    bus error
  3727.  13h    vendor specific
  3728.  14h-FFh reserved
  3729. --------s-1A85-------------------------------
  3730. INT 1A - Tandy 2500, Tandy 1000L series - DIGITAL SOUND???
  3731.     AH = 85h
  3732.     ???
  3733. Return: ???
  3734. Note:    this function is not supported by the Tandy 1000SL/TL BIOS
  3735. SeeAlso: AH=7Fh,AH=83h"Tandy"
  3736. --------X-1A85-------------------------------
  3737. INT 1A - PCMCIA Socket Services v1.00 - GET ADAPTER
  3738.     AH = 85h
  3739.     AL = adapter number
  3740. Return: CF clear if successful
  3741.         AH destroyed
  3742.         DH = adapter attributes (see #0568)
  3743.     CF set on error
  3744.         AH = error code (01h) (see #0552)
  3745. SeeAlso: AH=84h"PCMCIA",AH=86h
  3746.  
  3747. Bitfields for PCMCIA adapter attributes:
  3748. Bit(s)    Description    (Table 0568)
  3749.  7-5    reserved (0)
  3750.  4    hardware share status change
  3751.  3    software share status change
  3752.  2    enable status change interrupts
  3753.  1    adapter preserves state information during reduced power consumption
  3754.  0    attempting to reduce power consumption
  3755. --------X-1A86-------------------------------
  3756. INT 1A - PCMCIA Socket Services v1.00 - SET ADAPTER
  3757.     AH = 86h
  3758.     AL = adapter number
  3759.     DH = new adapter attributes (see #0568)
  3760. Return: CF clear if successful
  3761.         AH destroyed
  3762.     CF set on error
  3763.         AH = error code (01h) (see #0552)
  3764. SeeAlso: AH=84h"PCMCIA",AH=85h"PCMCIA"
  3765. --------X-1A87-------------------------------
  3766. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE WINDOW
  3767.     AH = 87h
  3768.     AL = adapter number
  3769.     BH = window number
  3770. Return: CF clear if successful
  3771.         AH destroyed
  3772.         BL = capabilities (see #0569)
  3773.         CX = bitmap of assignable sockets
  3774.         DH = EISA A15-A12 address lines (in bits 7-4, bits 3-0 = 0)
  3775.         DL = supported access speeds (see #0570)
  3776.         DS:SI -> Memory Window Characteristics table (see #0571)
  3777.         DS:DI -> I/O Window Characteristics table (see #0572)
  3778.     CF set on error
  3779.         AH = error code (01h,11h) (see #0552)
  3780. SeeAlso: AH=84h"PCMCIA",AH=88h,AH=89h,AH=8Ch
  3781.  
  3782. Bitfields for PCMCIA window capabilities:
  3783. Bit(s)    Description    (Table 0569)
  3784.  7-5    reserved (0)
  3785.  4    separate enable for EISA comon space
  3786.  3    EISA I/O mappable
  3787.  2    I/O space
  3788.  1    attribute memory
  3789.  0    common memory
  3790.  
  3791. Bitfields for PCMCIA supported access speeds:
  3792. Bit(s)    Description    (Table 0570)
  3793.  7    reserved (0)
  3794.  6    600 ns
  3795.  5    300 ns
  3796.  4    250 ns
  3797.  3    200 ns
  3798.  2    150 ns
  3799.  1    100 ns
  3800.  0    WAIT line monitoring
  3801.  
  3802. Format of PCMCIA Memory Window Characteristics table:
  3803. Offset    Size    Description    (Table 0571)
  3804.  00h    WORD    window capabilities (see #0573)
  3805.  02h    WORD    minimum base address in 4K pages
  3806.  04h    WORD    maximum base address in 4K pages
  3807.  06h    WORD    minimum window size in 4K pages
  3808.  08h    WORD    maximum window size in 4K pages
  3809.  0Ah    WORD    window size granularity (4K units)
  3810.  0Ch    WORD    required base address alignment (4K units)
  3811.  0Eh    WORD    required card offset alignment (4K units)
  3812.  
  3813. Format of PCMCIA I/O Window Characteristics table:
  3814. Offset    Size    Description    (Table 0572)
  3815.  00h    WORD    window capabilities (see #0573)
  3816.  02h    WORD    minimum base address in bytes
  3817.  04h    WORD    maximum base address in bytes
  3818.  06h    WORD    minimum window size in bytes
  3819.  08h    WORD    maximum window size in bytes
  3820.  0Ah    WORD    window size granularity (bytes)
  3821.  
  3822. Bitfields for PCMCIA window capabilities:
  3823. Bit(s)    Description    (Table 0573)
  3824.  0    programmable base address
  3825.  1    programmable window size
  3826.  2    window disable/enable supported
  3827.  3    8-data bus
  3828.  4    16-data bus
  3829.  5    base address alignment on size boundary required
  3830.  6    power-of-two size granularity
  3831. ---memory windows---
  3832.  7    card offset must be aligned on size boundary
  3833.  8    paging hardware available
  3834.  9    paging hardware shared
  3835.  10    page disable/enable supported
  3836.  11-15    reserved (0)
  3837. ---I/O windows---
  3838.  7-15    reserved (0)
  3839. --------X-1A88-------------------------------
  3840. INT 1A - PCMCIA Socket Services v1.00 - GET WINDOW
  3841.     AH = 88h
  3842.     AL = adapter number
  3843.     BH = window number
  3844. Return: CF clear if successful
  3845.         AH destroyed
  3846.         BL = socket number (0-16) (0 = not assigned)
  3847.         CX = window size (bytes for I/O window, 4K units for memory window)
  3848.         DH = window attributes (see #0574)
  3849.         DL = access speed (only one bit set) (see #0570)
  3850.         SI = window base address (bytes if I/O, 4K units if memory)
  3851.         DI = card offset address (memory only, 4K units)
  3852.     CF set on error
  3853.         AH = error code (01h,11h) (see #0552)
  3854. SeeAlso: AH=87h,AH=89h,AH=8Ah
  3855.  
  3856. Bitfields for PCMCIA window attributes:
  3857. Bit(s)    Description    (Table 0574)
  3858.  0    memory-mapped rather than I/O-mapped
  3859.  1    attribute memory rather than common (memory-mapped)
  3860.     EISA mapped (I/O)
  3861.  2    enabled
  3862.  3    16-data path
  3863.  4    subdivided into pages (memory-mapped only)
  3864.  5    non-specific access slot enable (EISA-mapped only)
  3865.  6-7    reserved (0)
  3866. --------X-1A89-------------------------------
  3867. INT 1A - PCMCIA Socket Services v1.00 - SET WINDOW
  3868.     AH = 89h
  3869.     AL = adapter number
  3870.     BH = window number
  3871.     BL = socket number
  3872.     CX = window size (bytes if I/O window, 4K units if memory window)
  3873.     DH = window attributes (see #0574)
  3874.     DL = access speed (only one bit set) (see #0570)
  3875.     SI = window base address (bytes if I/O, 4K units if memory window)
  3876.     DI = card offset addrress (memory only, 4K units)
  3877. Return: CF clear if successful
  3878.         AH destroyed
  3879.     CF set on error
  3880.         AH = error code (01h,03h,07h,08h,0Ah,0Bh,0Dh,10h,11h) (see #0552)
  3881. SeeAlso: AH=87h,AH=88h,AH=8Bh
  3882. --------X-1A8A-------------------------------
  3883. INT 1A - PCMCIA Socket Services v1.00 - GET PAGE
  3884.     AH = 8Ah
  3885.     AL = adapter number
  3886.     BH = window number
  3887.     BL = page number
  3888. Return: CF clear if successful
  3889.         AH destroyed
  3890.         DX = page attributes (see #0575)
  3891.         DI = memory card offset (4K units)
  3892.     CF set on error
  3893.         AH = error code (01h,08h,11h) (see #0552)
  3894. Notes:    this function is only valid for memory-mapped windows
  3895.     the socket being operated on is implied by the previous AH=89h call
  3896. SeeAlso: AH=88h,AH=8Bh
  3897.  
  3898. Bitfields for PCMCIA page attributes:
  3899. Bit(s)    Description    (Table 0575)
  3900.  0    page enabled
  3901.  15-1    reserved (0)
  3902. --------X-1A8B-------------------------------
  3903. INT 1A - PCMCIA Socket Services v1.00 - SET PAGE
  3904.     AH = 8Bh
  3905.     AL = adapter number
  3906.     BH = window number
  3907.     BL = page number
  3908.     DX = page attributes (see #0575)
  3909.     DI = memory card offset (4K units)
  3910. Return: CF clear if successful
  3911.         AH destroyed
  3912.     CF set on error
  3913.         AH = error code (01h,02h,07h,08h,11h) (see #0552)
  3914. Notes:    this function is only valid for memory-mapped windows
  3915.     the socket being operated on is implied by the previous AH=89h call
  3916. SeeAlso: AH=89h,AH=8Ah
  3917. --------X-1A8C-------------------------------
  3918. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE SOCKET
  3919.     AH = 8Ch
  3920.     AL = adapter number
  3921.     BL = socket number (01h to maximum supported by adapter)
  3922. Return: CF clear if successful
  3923.         AH destroyed
  3924.         DH = capabilities (see #0576)
  3925.         DL = hardware indicators (see #0577)
  3926.         DS:SI -> Socket Characteristics table (see #0578)
  3927.         DS:DI -> Power Management table (see #0580)
  3928.     CF set on error
  3929.         AH = error code (01h,0Bh) (see #0552)
  3930. SeeAlso: AH=87h,AH=8Dh,AH=8Eh
  3931.  
  3932. Bitfields for PCMCIA socket capabilities:
  3933. Bit(s)    Description    (Table 0576)
  3934.  0    card change
  3935.  1    card lock
  3936.  2    insert card (motor control)
  3937.  3    eject card (motor control)
  3938.  4-7    reserved (0)
  3939.  
  3940. Bitfields for PCMCIA socket hardware indicators:
  3941. Bit(s)    Description    (Table 0577)
  3942.  0    busy status
  3943.  1    write-protected
  3944.  2    battery status
  3945.  3    card lock status
  3946.  4    XIP status (eXecute-In-Place)
  3947.  5-7    reserved (0)
  3948.  
  3949. Format of PCMCIA Socket Characteristics table:
  3950. Offset    Size    Description    (Table 0578)
  3951.  00h    WORD    supported card types (see #0579)
  3952.  02h    WORD    steerable IRQ levels (bit 0 = IRQ0 to bit 15 = IRQ15)
  3953.  04h    WORD    additional steerable IRQ levels
  3954.         bit 0: NMI
  3955.         bit 1: I/O check
  3956.         bit 2: bus error
  3957.         bit 3: vendor-unique
  3958.         bits 4-7 reserved (0)
  3959.  
  3960. Bitfields for supported card types:
  3961. Bit(s)    Description    (Table 0579)
  3962.  0    memory card
  3963.  1    I/O card
  3964.  2-7    reserved (0)
  3965.  
  3966. Format of PCMCIA Power Management table:
  3967. Offset    Size    Description    (Table 0580)
  3968.  00h    WORD    number of entries in table (0 if power management not avail)
  3969.  02h 2N BYTEs    power levels
  3970.         byte 0: voltage in 0.1V units
  3971.         byte 1: power supply
  3972.             bit 7: Vcc
  3973.             bit 6: Vpp1
  3974.             bit 5: Vpp2
  3975. --------X-1A8D-------------------------------
  3976. INT 1A - PCMCIA Socket Services v1.00 - GET SOCKET
  3977.     AH = 8Dh
  3978.     AL = adapter number
  3979.     BL = socket number (01h to maximum supported by adapter)
  3980. Return: CF clear if successful
  3981.         AH destroyed
  3982.         BH = status change interrupt enable mask (see #0554)
  3983.         CH = Vcc level (lower nybble) (see #0580)
  3984.         CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  3985.         DH = current socket status (see #0555)
  3986.         DL = indicators (see #0577)
  3987.         SI = card type (see #0581)
  3988.         DI = IRQ level steering (I/O only) (see #0582)
  3989.     CF set on error
  3990.         AH = error code (01h,0Bh) (see #0552)
  3991. SeeAlso: AH=8Ch,AH=8Eh
  3992.  
  3993. Bitfields for PCMCIA card type:
  3994. Bit(s)    Description    (Table 0581)
  3995.  0    memory
  3996.  1    I/O
  3997.  2-15    reserved (0)
  3998.  
  3999. Bitfields for PCMCIA I/O level steering:
  4000. Bit(s)    Description    (Table 0582)
  4001.  15    interrupt steering enabled
  4002.  14-5    reserved (0)
  4003.  4-0    IRQ level (0-15=IRQ,16=NMI,17=I/O check,18=bus error,19=vendor)
  4004. --------X-1A8E-------------------------------
  4005. INT 1A - PCMCIA Socket Services v1.00 - SET SOCKET
  4006.     AH = 8Eh
  4007.     AL = adapter number
  4008.     BL = socket number (01h to maximum supported by adapter)
  4009.     BH = status change interrupt enable mask (see #0554)
  4010.     CL = Vpp1 level (upper nybble) and Vpp2 level (lower nybble)
  4011.     DH = current socket status (see #0555)
  4012.     DL = indicators (see #0577)
  4013.     SI = card type (see #0581)
  4014.     DI = IRQ level steering (I/O only) (see #0582)
  4015. Return: CF clear if successful
  4016.         AH destroyed
  4017.     CF set on error
  4018.         AH = error code (01h,02h,05h,06h,0Bh,0Eh,0Fh) (see #0552)
  4019. SeeAlso: AH=8Ch,AH=8Dh
  4020. --------X-1A8F-------------------------------
  4021. INT 1A - PCMCIA Socket Services v1.00 - GET CARD
  4022.     AH = 8Fh
  4023.     AL = adapter number
  4024.     BL = socket number (01h to maximum supported by adapter)
  4025. Return: CF clear if successful
  4026.         AH destroyed
  4027.         DL = current card status (see #0556)
  4028.     CF set on error
  4029.         AH = error code (01h,0Bh) (see #0552)
  4030. SeeAlso: AH=8Dh,AH=90h
  4031. --------X-1A90-------------------------------
  4032. INT 1A - PCMCIA Socket Services v1.00 - RESET CARD
  4033.     AH = 90h
  4034.     AL = adapter number
  4035.     BL = socket number (01h to maximum supported by adapter)
  4036. Return: CF clear if successful
  4037.         AH destroyed
  4038.     CF set on error
  4039.         AH = error code (01h,0Bh,14h) (see #0552)
  4040. Note:    toggles RESET pin of the specified card, but does not wait after
  4041.       toggling the pin; it is the caller's responsibility to avoid
  4042.       accessing the card before it is ready again
  4043. --------X-1A91-------------------------------
  4044. INT 1A - PCMCIA Socket Services v1.00 - READ ONE
  4045.     AH = 91h
  4046.     AL = adapter number
  4047.     BL = socket number (01h to maximum supported by adapter)
  4048.     BH = attributes (see #0583)
  4049.     DX:SI = card address
  4050. Return: CF clear if successful
  4051.         AH destroyed
  4052.         CL/CX = value read
  4053.     CF set on error
  4054.         AH = error code (01h,07h,09h,0Bh,14h) (see #0552)
  4055.         CX may be destroyed
  4056. Note:    this function is only valid for I/O-mapped sockets
  4057. SeeAlso: AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  4058.  
  4059. Bitfields for PCMCIA attributes:
  4060. Bit(s)    Description    (Table 0583)
  4061.  2    even bytes only
  4062.  1    word rather than byte
  4063.  0    attribute memory instead of common memory
  4064. --------X-1A92-------------------------------
  4065. INT 1A - PCMCIA Socket Services v1.00 - WRITE ONE
  4066.     AH = 92h
  4067.     AL = adapter number
  4068.     BL = socket number (01h to maximum supported by adapter)
  4069.     BH = attributes (see #0583)
  4070.     CL/CX = value to write
  4071.     DX:SI = card address
  4072. Return: CF clear if successful
  4073.         AH destroyed
  4074.     CF set on error
  4075.         AH = error code (01h,07h,0Bh,12h,14h) (see #0552)
  4076. Note:    this function is only valid for I/O-mapped sockets; it also does not
  4077.       implement Card Technology handling--use AH=94h when writing to
  4078.       non-RAM technologies
  4079. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  4080. --------X-1A93-------------------------------
  4081. INT 1A - PCMCIA Socket Services v1.00 - READ MULTIPLE
  4082.     AH = 93h
  4083.     AL = adapter number
  4084.     BL = socket number (01h to maximum supported by adapter)
  4085.     BH = attributes (see #0583)
  4086.     CX = number of bytes or words to read
  4087.     DX:SI = card address
  4088.     DS:DI -> data buffer to be filled
  4089. Return: CF clear if successful
  4090.         AH destroyed
  4091.     CF set on error
  4092.         AH = error code (01h,07h,09h,0Bh,14h) (see #0552)
  4093. Note:    this function is only available on I/O-mapped sockets
  4094. SeeAlso: AH=91h,AH=94h,INT 21/AX=440Dh"DOS 3.2+"
  4095. --------X-1A94-------------------------------
  4096. INT 1A - PCMCIA Socket Services v1.00 - WRITE MULTIPLE
  4097.     AH = 94h
  4098.     AL = adapter number
  4099.     BL = socket number (01h to maximum supported by adapter)
  4100.     BH = attributes (see #0583)
  4101.     CX = number of bytes or words to read
  4102.     DX:DI = card address
  4103.     DS:SI -> buffer containing data
  4104.     BP = Card Technology type (0000h = RAM)
  4105. Return: CF clear if successful
  4106.         AH destroyed
  4107.     CF set on error
  4108.         AH = error code (01h,07h,0Bh,0Ch,12h,14h) (see #0552)
  4109. Notes:    this function is only available on I/O-mapped sockets
  4110.     Socket Services calls the Card Technology callback (see #0557) for
  4111.       any card technology it does not directly support
  4112. SeeAlso: AH=82h"PCMCIA",AH=92h,AH=93h,INT 21/AX=440Dh"DOS 3.2+"
  4113. --------X-1A95-------------------------------
  4114. INT 1A - PCMCIA Socket Services v1.00 - INQUIRE ERROR DETECTION CODE
  4115.     AH = 95h
  4116.     AL = adapter number
  4117.     BH = EDC generator number
  4118. Return: CF clear if successful
  4119.         AH destroyed
  4120.         CX = bitmap of assignable sockets
  4121.         DH = EDC capabilities (see #0584)
  4122.         DL = supported EDC types (see #0585)
  4123.     CF set on error
  4124.         AH = error code (01h,04h) (see #0552)
  4125. SeeAlso: AH=96h,AH=9Ch
  4126.  
  4127. Bitfields for EDC capabilities:
  4128. Bit(s)    Description    (Table 0584)
  4129.  0    unidirectional only generation
  4130.  1    bidirectional only generation
  4131.  2    register-based (I/O-mapped) support
  4132.  3    memory-mapped support
  4133.  4    pausable
  4134.  5-7    reserved (0)
  4135.  
  4136. Bitfields for supported EDC types:
  4137. Bit(s)    Description    (Table 0585)
  4138.  0    8-checksum
  4139.  1    16-CRC-SDLC
  4140.  2-7    reserved (0)
  4141. --------X-1A96-------------------------------
  4142. INT 1A - PCMCIA Socket Services v1.00 - GET ERROR DETECTION CODE
  4143.     AH = 96h
  4144.     AL = adapter number
  4145.     BH = EDC generator number
  4146. Return: CF clear if successful
  4147.         AH destroyed
  4148.         BL = socket number
  4149.         DH = EDC attributes (see #0586)
  4150.         DL = EDC type (see #0585) (only one bit set)
  4151.     CF set on error
  4152.         AH = error code (01h,04h) (see #0552)
  4153. SeeAlso: AH=95h,AH=97h,AH=9Ch
  4154.  
  4155. Bitfields for EDC attributes:
  4156. Bit(s)    Description    (Table 0586)
  4157.  0    unidirectional only
  4158.  1    (if 0 set) clear=read, set=write
  4159.  2-7    reserved (0)
  4160. --------X-1A97-------------------------------
  4161. INT 1A - PCMCIA Socket Services v1.00 - SET ERROR DETECTION CODE
  4162.     AH = 97h
  4163.     AL = adapter number
  4164.     BH = EDC generator
  4165.     BL = socket number
  4166.     DH = EDC attributes (see #0586)
  4167.     DL = EDC type (see #0585) (only one bit may be set)
  4168. Return: CF clear if successful
  4169.         AH destroyed
  4170.     CF set on error
  4171.         AH = error code (01h,02h,04h,0Bh) (see #0552)
  4172. SeeAlso: AH=96h,AH=9Ch
  4173. --------X-1A98-------------------------------
  4174. INT 1A - PCMCIA Socket Services v1.00 - START ERROR DETECTION CODE
  4175.     AH = 98h
  4176.     AL = adapter number
  4177.     BH = EDC generator
  4178. Return: CF clear if successful
  4179.         AH destroyed
  4180.     CF set on error
  4181.         AH = error code (01h,04h) (see #0552)
  4182. SeeAlso: AH=96h,AH=99h,AH=9Bh,AH=9Ch
  4183. --------X-1A99-------------------------------
  4184. INT 1A - PCMCIA Socket Services v1.00 - PAUSE ERROR DETECTION CODE
  4185.     AH = 99h
  4186.     AL = adapter number
  4187.     BH = EDC generator
  4188. Return: CF clear if successful
  4189.         AH destroyed
  4190.     CF set on error
  4191.         AH = error code (01h,04h) (see #0552)
  4192. SeeAlso: AH=9Ah
  4193. --------X-1A9A-------------------------------
  4194. INT 1A - PCMCIA Socket Services v1.00 - RESUME ERROR DETECTION CODE
  4195.     AH = 9Ah
  4196.     AL = adapter number
  4197.     BH = EDC generator
  4198. Return: CF clear if successful
  4199.         AH destroyed
  4200.     CF set on error
  4201.         AH = error code (01h,04h) (see #0552)
  4202. SeeAlso: AH=99h,AH=98h
  4203. --------X-1A9B-------------------------------
  4204. INT 1A - PCMCIA Socket Services v1.00 - STOP ERROR DETECTION CODE
  4205.     AH = 9Bh
  4206.     AL = adapter number
  4207.     BH = EDC generator
  4208. Return: CF clear if successful
  4209.         AH destroyed
  4210.     CF set on error
  4211.         AH = error code (see #0552)
  4212. SeeAlso: AH=98h,AH=99h,AH=9Ch
  4213. --------X-1A9C-------------------------------
  4214. INT 1A - PCMCIA Socket Services v1.00 - READ ERROR DETECTION CODE
  4215.     AH = 9Ch
  4216.     AL = adapter number
  4217.     BH = EDC generator
  4218. Return: CF clear if successful
  4219.         AH destroyed
  4220.         DL/DX = computed checksum or CRC
  4221.     CF set on error
  4222.         AH = error code (01h,04h) (see #0552)
  4223. SeeAlso: AH=95h,AH=96h,AH=98h,AH=99h,AH=9Bh
  4224. --------X-1A9D-------------------------------
  4225. INT 1A - PCMCIA Socket Services v2.1??? - GET VENDOR INFO
  4226.     AH = 9Dh
  4227.     AL = adapter number
  4228.     BH = EDC generator
  4229.     ES:EDI -> vendor information structure (see #0587)
  4230. Return: CF clear if successful
  4231.         AH destroyed
  4232.         DX = vendor release number in BCD
  4233.         ES:EDI unchanged
  4234.     CF set on error
  4235.         AH = error code (01h,15h) (see #0552)
  4236. Notes:    this API is supported by recent versions of the AMI BIOS
  4237.     the low-level API described here is hidden by the higher-level
  4238.       ExCA API once Card Services has been installed
  4239. SeeAlso: AH=9Dh"ExCA"
  4240.  
  4241. Format of Vendor Information structure:
  4242. Offset    Size    Description    (Table 0587)
  4243.  00h    WORD    buffer length (set to size of buffer below)
  4244.  04h    WORD    (ret) data length
  4245.  08h  x BYTEs    implementor name (ASCIIZ string)
  4246. --------X-1A9D-------------------------------
  4247. INT 1A - Intel PCMCIA ExCA Card Services - API
  4248.     AH = 9Dh
  4249.     AL = subfunction (see #0588)
  4250.     ???
  4251. Return: ???
  4252. SeeAlso: AH=9Dh"ExCA",#3310
  4253.  
  4254. (Table 0588)
  4255. Values for PCMCIA ExCA Card Services subfunction number:
  4256.  00h    Client Services: Get Number of Sockets
  4257.  01h    Advanced Client Utilities: Initialize
  4258.  02h    Client Services: Register Client
  4259.  03h    Client Services: Deregister Client
  4260.  04h    Advanced Client Utilities: Enumerate Clients
  4261.  05h    Client Services: Register SCB
  4262.  06h    Client Services: Deregister SCB
  4263.  07h    Advanced Client Utilities: Register MTD
  4264.  08h    Advanced Client Utilities: Deregister MTD
  4265.  09h    Advanced Client Utilities: Enumerate MTD
  4266.  0Ah    Client Services: Get Status
  4267.  0Bh    Client Services: Reset Card
  4268.  0Ch    Client Utilities: Get First Tuple
  4269.  0Dh    Client Utilities: Get Next Tuple
  4270.  0Eh    Client Utilities: Determine First Region
  4271.  0Fh    Client Utilities: Determine Next Region
  4272.  10h    Client Utilities: Get First Region
  4273.  11h    Client Utilities: Get Next Region
  4274.  12h    Client Utilities: Get First Partition
  4275.  13h    Client Utilities: Get Next Partition
  4276.  14h    Bulk Memory Services: Open Region
  4277.  15h    Bulk Memory Services: Read Memory
  4278.  16h    Bulk Memory Services: Write Memory
  4279.  17h    Bulk Memory Services: Copy Memory
  4280.  18h    Bulk Memory Services: Erase Memory
  4281.  19h    Resource Management: Request I/O
  4282.  1Ah    Resource Management: Release I/O
  4283.  1Bh    Resource Management: Request Memory
  4284.  1Ch    Client Services: Modify Window
  4285.  1Dh    Resource Management: Release Memory
  4286.  1Eh    Client Services: Map Mem Page
  4287.  1Fh    Advanced Client Utilities: Return SS Entry
  4288.  20h    Advanced Client Utilities: Map Log to Phy
  4289.  21h    Advanced Client Utilities: Map Log Phy to Log
  4290.  22h    Resource Management: Request IRQ
  4291.  23h    Resource Management: Release IRQ
  4292.  24h    Bulk Memory Services: Close Region
  4293. --------X-1A9E-------------------------------
  4294. INT 1A - PCMCIA Socket Services v2.1 - ACKNOWLEDGE INTERRUPT
  4295.     AH = 9Eh
  4296.     AL = adapter number
  4297. Return: CF clear if successful
  4298.         AH destroyed
  4299.         CX = bitmap representing sockets which have changed status
  4300.     CF set on error
  4301.         AH = error code (01h) (see #0552)
  4302. Note:    this API is supported by recent versions of the AMI BIOS
  4303. --------X-1A9F-------------------------------
  4304. INT 1A - PCMCIA Socket Services v2.1 - GET/SET PRIOR INT 1A HANDLER
  4305.     AH = 9Fh
  4306.     AL = adapter number
  4307.     BL = mode
  4308.         00h get prior INT 1Ah handler
  4309.         01h set prior INT 1Ah handler
  4310.         CX:DX -> new prior handler
  4311. Return: CF clear if successful
  4312.         AH destroyed
  4313.         CX:DX -> old prior handler
  4314.     CF set on error
  4315.         AH = error code (01h,15h,18h) (see #0552)
  4316. Desc:    allows hooking of INT 16h "behind" the Socket Services hook
  4317. Note:    this API is supported by recent versions of the AMI BIOS
  4318. SeeAlso: AH=9Eh,AH=A0h"PCMCIA",AH=AEh"PCMCIA"
  4319. --------c-1AA0-------------------------------
  4320. INT 1A U - Disk Spool II v2.07+ - INSTALLATION CHECK
  4321.     AH = A0h
  4322. Return: AH = B0h if installed
  4323.         AL = pending INT 1A/AH=D0h subfunction if nonzero???
  4324.         ES = code segment
  4325.         ES:BX -> name of current spool file
  4326.         ES:SI -> current despool file
  4327.         CL = despooler state (00h disabled, 41h enabled)
  4328.         CH = spooler state (00h disabled, 41h enabled)
  4329.         DL = despooler activity
  4330.         00h currently active printing a file
  4331.         41h standing by
  4332.         DH = 00h ???
  4333.            = 41h ???
  4334.         DI = 0000h ???
  4335.          0001h ???
  4336. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  4337.       Software Company
  4338. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  4339.       as that is a licensed version of Disk Spool II
  4340. SeeAlso: AH=ABh,AH=C0h,AH=D0h,AH=E1h
  4341. --------X-1AA0-------------------------------
  4342. INT 1A - PCMCIA Socket Services v2.1 - GET/SET SOCKET SERVICES ADDRESS
  4343.     AH = A0h
  4344.     AL = adapter number
  4345.     BH = mode
  4346.         00h real mode
  4347.         01h 16:16 protected mode
  4348.         02h 16:32 protected mode
  4349.         03h 00:32 (Flat) protected mode
  4350.     BL = subfunction
  4351.         00h return number of additional data areas (see #0589)
  4352.         01h return description of additional data areas (see #0590)
  4353.         02h accept mode-specific pointers to data areas (see #0591)
  4354.     ES:EDI -> buffer supplied by caller
  4355. Return: CF clear if successful
  4356.         AH destroyed
  4357.         CX = number of additional data areas
  4358.         ES:EDI unchanged
  4359.     CF set on error
  4360.         AH = error code (01h,02h,15h,16h,18h) (see #0552)
  4361. SeeAlso: AH=9Fh,AH=AEh
  4362.  
  4363. Format of PCMCIA Subfunction 00h Buffer Table Entry structure:
  4364. Offset    Size    Description    (Table 0589)
  4365.  00h    DWORD    32-bit linear base address of the code segment
  4366.  04h    DWORD    segment limit of the code segment
  4367.  08h    DWORD    entry point offset
  4368.  0Ch    DWORD    32-bit linear base address of the data segment
  4369.         (ignored in 00:32 flat mode)
  4370.  10h    DWORD    segment limit of the data segment
  4371.  14h    DWORD    data area offset.  Only used in 32-bit protected mode.
  4372. SeeAlso: #0590,#0591
  4373.  
  4374. Format of PCMCIA Additional Data Area Description structure [array]:
  4375. Offset    Size    Description    (Table 0590)
  4376.  00h    DWORD    32-bit linear base address of the additional data segment
  4377.         (ignored in 00:32 flat mode)
  4378.  04h    DWORD    segment limit of the code segment
  4379.  08h    DWORD    data area offset (only used in 32-bit protected mode)
  4380. SeeAlso: #0589,#0591
  4381.  
  4382. Format of PCMCIA Subfunction 02h Buffer Table Entry structure:
  4383. Offset    Size    Description    (Table 0591)
  4384.  00h    DWORD    32-bit offset(ignored in 16:16 protected mode)
  4385.  04h    DWORD    selector (only used in 00:32 flat mode)
  4386.  08h    DWORD    reserved
  4387. SeeAlso: #0589,#0590
  4388. --------X-1AA1-------------------------------
  4389. INT 1A - PCMCIA Socket Services v2.1 - GET ACCESS OFFSETS
  4390.     AH = A1h
  4391.     AL = adapter number
  4392.     BH = Mode
  4393.          00h = Real Mode
  4394.          01h = 16:16 Protected Mode
  4395.          02h = 16:32 Protected Mode
  4396.          03h = 00:32 Protected Mode
  4397.     CX = Number of access offsets
  4398.     ES:EDI -> buffer supplied by caller, CX words long (see #0592)
  4399. Return: CF clear if successful
  4400.         AH destroyed
  4401.         DX = number of access offsets supported
  4402.         ES:EDI unchanged
  4403.     CF set on error
  4404.         AH = error code (01h,15h,16h) (see #0552)
  4405. Desc:    Returns an array of low-level adapter-specific optimized
  4406.     PC Card access routines for adapters that use registers
  4407.     or I/O ports to access PC Card memory.    Adapters that access
  4408.     PC Card memory through windows mapped to host system memory
  4409.     do not support this function.
  4410. Note:    offsets returned are 16-bit offsets into the
  4411.     Socket Services code segment.  They must be called
  4412.     appropriately for the processor mode selected.
  4413.     (Real, 16:16 and 16:32 modes use FAR CALL,
  4414.     Flat 00:32 mode uses a 32-bit NEAR CALL).
  4415. SeeAlso: AH=AEh
  4416.  
  4417. Format of Offset Table structure:
  4418. Offset    Size    Description    (Table 0592)
  4419.  00h    WORD    Set Address
  4420.  02h    WORD    Set Auto Increment
  4421.  04h    WORD    Read Byte
  4422.  06h    WORD    Read Word
  4423.  08h    WORD    Read Byte with Auto Increment
  4424.  0Ah    WORD    Read Word with Auto Increment
  4425.  0Ch    WORD    Read Words
  4426.  0Eh    WORD    Read Words with Auto Increment
  4427.  10h    WORD    Write Byte
  4428.  12h    WORD    Write Word
  4429.  14h    WORD    Write Byte with Auto Increment
  4430.  16h    WORD    Write Word with Auto Increment
  4431.  18h    WORD    Write Words
  4432.  1Ah    WORD    Write Words with Auto Increment
  4433.  1Ch    WORD    Compare Byte
  4434.  1Eh    WORD    Compare Byte with Auto Increment
  4435.  20h    WORD    Compare Words
  4436.  22h    WORD    Compare Words with Auto Increment
  4437. --------X-1AA2-------------------------------
  4438. INT 1A - CardBus Socket Services - ACCESS CONFIGURATION SPACE
  4439.     AH = A2h
  4440.     ??? details not available
  4441. Return: ???
  4442. --------X-1AA4-------------------------------
  4443. INT 1A - CardBus Socket Services - GET BRIDGE WINDOW / WINDOW CAPABILITIES
  4444.     AH = A4h
  4445.     ??? details not available
  4446. Return: ???
  4447. SeeAlso: AH=A5h"CardBus"
  4448. --------X-1AA5-------------------------------
  4449. INT 1A - CardBus Socket Services - SET BRIDGE WINDOW
  4450.     AH = A5h
  4451.     ??? details not available
  4452. Return: ???
  4453. SeeAlso: AH=A4h"CardBus"
  4454. --------c-1AAB-------------------------------
  4455. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  4456.     AH = ABh
  4457. Return: AH = BAh if installed
  4458.         AL = pending INT 1A/AH=ADh subfunction if nonzero???
  4459.         ES = code segment
  4460.         ES:BX -> name of current spool file
  4461.         ES:SI -> current despool file
  4462.         CL = despooler state (00h disabled, 41h enabled)
  4463.         CH = spooler state (00h disabled, 41h enabled)
  4464.         DL = despooler activity
  4465.         00h currently active printing a file
  4466.         41h standing by
  4467.         DH = 00h ???
  4468.            = 41h ???
  4469.         DI = 0000h ???
  4470.          0001h ???
  4471. Program: Disk Spool II is a shareware disk-based print spooler by Budget
  4472.       Software Company
  4473. SeeAlso: AH=A0h,AH=ACh,AH=ADh,AH=E1h
  4474. --------c-1AAC-------------------------------
  4475. INT 1A U - Disk Spool II v1.83 - INSTALLATION CHECK
  4476.     AH = ACh
  4477. Return: (see AH=ABh)
  4478. Note:    this function is identical to AH=ABh
  4479. SeeAlso: AH=A0h,AH=ABh,AH=ADh
  4480. --------c-1AAD-------------------------------
  4481. INT 1A U - Disk Spool II v1.83 - FUNCTION CALLS
  4482.     AH = ADh
  4483.     AL = function code (see #0593)
  4484. Return: AH = 00h if successful
  4485. SeeAlso: AH=ABh
  4486.  
  4487. (Table 0593)
  4488. Values for Disk Spool function code:
  4489.  02h    enable spooler only
  4490.  03h    enable the despooler
  4491.  04h    disable the despooler
  4492.  08h    inhibit popup menu
  4493.  09h    enable popup menu
  4494.  0Ah    ???
  4495.  0Bh    disable the spooler
  4496.  0Ch    start despooler after last successfully printed document???
  4497.  0Dh    start despooler at the exact point where it last left off???
  4498.  0Eh    pop up the menu
  4499.  0Fh    ???
  4500.  11h    ???
  4501.  14h    ???
  4502.  15h    ???
  4503.  16h    ???
  4504.  17h    ???
  4505.  18h    ???
  4506.  19h    ???
  4507.  20h    clear file pointed to by the despooler???
  4508.  21h    ???
  4509.  22h    ???
  4510.  23h    ???
  4511.  30h    ???
  4512. --------X-1AAE-------------------------------
  4513. INT 1A - PCMCIA Socket Services v2.1 - VENDOR SPECIFIC
  4514.     AH = AEh
  4515.     AL = adapter number
  4516.     all other registers are vendor-specific
  4517. Return: vendor specific
  4518. SeeAlso: AH=A1h,AH=AFh
  4519. --------X-1AAE-------------------------------
  4520. INT 1A - PCMCIA Socket Services v2.1 - API
  4521.     AH = AEh
  4522.     SI = function
  4523.         0002h ???
  4524.         0100h ???
  4525.         0101h ???
  4526.         8000h ???
  4527.         8001h ???
  4528.     details not yet available
  4529. Return: CF clear if successful
  4530.     CF set on error
  4531.         AH = error code (02h,0Bh,11h,15h,17h) (see #0552)
  4532. SeeAlso: AH=9Eh
  4533. --------X-1AAF-------------------------------
  4534. INT 1A - PCMCIA v2 Card Services - API
  4535.     AH = AFh
  4536.     AL = function
  4537.         00h close memory
  4538.         01h copy memory
  4539.         02h deregister client
  4540.         03h get client information (see #0598)
  4541.         04h get configuration information (see #0600)
  4542.         05h get first partition
  4543.         06h get first region
  4544.         07h get first tuple (see #0607)
  4545.         08h get next partition
  4546.         09h get next region
  4547.         0Ah get next tuple
  4548.         0Bh    get Card Services information (see #0596)
  4549.         0Ch get status
  4550.         0Dh    get tuple data (see #0608)
  4551.         0Eh    get first client (see #0597)
  4552.         0Fh get/register Erase Queue
  4553.         10h    register client (see #0609)
  4554.         11h reset function
  4555.         12h map logical socket
  4556.         13h map logical window
  4557.         14h map memory page
  4558.         15h map physical socket
  4559.         16h map physical window
  4560.         17h modify window
  4561.         18h open memory
  4562.         19h read memory
  4563.         1Ah register MTD
  4564.         1Bh release I/O
  4565.         1Ch release IRQ (see #0611)
  4566.         1Dh release window
  4567.         1Eh release configuration (see #0612)
  4568.         1Fh request I/O (see #0613)
  4569.         20h request IRQ (see #0614)
  4570.         21h reqeust window (see #0616)
  4571.         22h request socket mask
  4572.         23h return SS entry
  4573.         24h write memory
  4574.         25h deregister Erase Queue
  4575.         26h check Erase Queue
  4576.         27h modify configuration
  4577.         28h register timer
  4578.         29h set region
  4579.         2Ah get next client
  4580.         2Bh validate CIS
  4581.         2Ch request exclusive access (see #0619)
  4582.         2Dh release exclusive access (see #0619)
  4583.         2Eh get event mask
  4584.         2Fh release socket mask
  4585.         30h request configuration (see #0620)
  4586.         31h set event mask
  4587.         32h add Socket Service
  4588.         33h replace Socket Service
  4589.         34h vendor-specific
  4590.         35h adjust resource information
  4591.         36h access configuration register
  4592.         37h get first window
  4593.         38h get next window
  4594.         39h get memory page
  4595.         3Ah request DMA
  4596.         3Bh release DMA
  4597.     further details not yet available
  4598. Return: ??? = result code (see #0594)
  4599. SeeAlso: AH=AEh
  4600.  
  4601. (Table 0594)
  4602. Values for PCMCIA Card Services result codes:
  4603.  00h    successful
  4604.  01h    invalid adapter number
  4605.  02h    bad value for attribute field
  4606.  03h    bad value for base system memory address
  4607.  04h    invalid EDC generator specified
  4608.  05h    (reserved for historical reasons)
  4609.  06h    invalid IRQ level specified
  4610.  07h    invalid PC Card memory array offset
  4611.  08h    invalid page number specified
  4612.  09h    unable to complete read request
  4613.  0Ah    invalid size specified
  4614.  0Bh    invalid socket number
  4615.  0Ch    (reserved for historical reasons)
  4616.  0Dh    invalid window or interface type
  4617.  0Eh    invalid Vcc power level specified
  4618.  0Fh    invalid Vpp1 or Vpp2 power level specified
  4619.  10h    (reserved for historical reasons)
  4620.  11h    invalid window number
  4621.  12h    unable to complete write request
  4622.  13h    (reserved for historical reasons)
  4623.  14h    no PC Card in socket
  4624.  15h    service not supported by implementation
  4625.  16h    unsupported processor mode
  4626.  17h    specified speed not available
  4627.  18h    busy -- retry later
  4628.  19h    undefined error (general failure)
  4629.  1Ah    storage medium write protected
  4630.  1Bh    argument length in (E)CX is invalid
  4631.  1Ch    bad value(s) in argument packet
  4632.  1Dh    configuration has already been locked
  4633.  1Eh    requested resource already in use
  4634.  1Fh    no more items of requested type available
  4635.  20h    out of resources
  4636.  21h    invalid client handle
  4637.  22h    unsupported client version
  4638.  
  4639. (Table 0595)
  4640. Values for Card Services Callback Event codes:
  4641.  01h    battery dead
  4642.  02h    battery low
  4643.  03h    card locked
  4644.  04h    card has become ready
  4645.  05h    card removed
  4646.  06h    card unlocked
  4647.  07h    motorized ejection complete
  4648.  08h    ejection requested
  4649.  09h    insertion complete
  4650.  0Ah    insertion requested
  4651.  0Bh    power management: resume
  4652.  0Ch    power management: suspend
  4653.  0Dh    exclusive access granted
  4654.  0Eh    exclusive access requested
  4655.  0Fh    perform physical reset
  4656.  10h    physical reset requested
  4657.  11h    card has been reset
  4658.  12h    MTD request (read/write/etc)
  4659.  14h    request for client info
  4660.  15h    timer has expired
  4661.  16h    Socket Service was modified
  4662.  17h    write-protected
  4663.  18h    attention requested
  4664.  40h    card insertion
  4665.  80h    reset complete
  4666.  81h    erase complete
  4667.  82h    registration complete
  4668.  
  4669. Format of Card Services Information:
  4670. Offset    Size    Description    (Table 0596)
  4671.  00h    WORD    length of information record in bytes
  4672.  02h    WORD    signature
  4673.  04h    WORD    number of sockets
  4674.  06h    WORD    revision level
  4675.  08h    WORD    Card Services level
  4676.  0Ah    WORD    offset of vendor string
  4677.  0Ch    WORD    length of vendor string
  4678.  0Eh    WORD    number of functions
  4679.  10h 255 BYTEs    vendor string
  4680. SeeAlso: #0598
  4681.  
  4682. Format of Card Services Client structure:
  4683. Offset    Size    Description    (Table 0597)
  4684.  00h    WORD    PCMCIA socket number
  4685.  02h    WORD    client attributes
  4686.  
  4687. Format of Cards Services Client Information:
  4688. Offset    Size    Description    (Table 0598)
  4689.  00h    WORD    maximum length of data in bytes (180)
  4690.  02h    WORD    (ret) length of returned data
  4691.  04h    WORD    attributes (see #0599)
  4692.  06h    WORD    revision level (BCD)
  4693.  08h    WORD    Card Services level (BCD)
  4694.  0Ah    WORD    revision date (DOS packed date format) (see #1006)
  4695.  0Ch    WORD    offset to name
  4696.  0Eh    WORD    length of name
  4697.  10h    WORD    offset to vendor string
  4698.  12h    WORD    length of vendor string
  4699.  14h 80 BYTEs    buffer for name
  4700.  64h 80 BYTEs    buffer for vendor string
  4701. SeeAlso: #0596,#0600
  4702.  
  4703. Bitfields for Card Services client attributes:
  4704. Bit(s)    Description    (Table 0599)
  4705.  0    memory client
  4706.  1    MTD client
  4707.  2    I/O client
  4708.  3    all clients can share this card
  4709.  4    only one client can use this card at a time
  4710. SeeAlso: #0598
  4711.  
  4712. Format of Card Services configuration information:
  4713. Offset    Size    Description    (Table 0600)
  4714.  00h    WORD    socket (usually 0000h)
  4715.  02h    WORD    attributes (see #0601)
  4716.  04h    BYTE    Vcc value
  4717.  05h    BYTE    Vpp1 value
  4718.  06h    BYTE    Vpp2 value
  4719.  07h    BYTE    interface type (see #0602)
  4720.  08h    DWORD    base address of configuration registers
  4721.  0Ch    BYTE    card's Status register setting (if present)
  4722.  0Dh    BYTE    card's Pin register setting (if present)
  4723.  0Eh    BYTE    card's Socket/Copy register setting (if present)
  4724.  0Fh    BYTE    card's Option register setting (if present)
  4725.  10h    BYTE    bitmap of present card configuration registers
  4726.  11h    BYTE    first device type
  4727.  12h    BYTE    function code
  4728.  13h    BYTE    SysInit mask
  4729.  14h    WORD    manufacturer code
  4730.  16h    WORD    manufacturer information
  4731.  18h    BYTE    valie card register values
  4732.  19h    BYTE    IRQ number assigned to PC Card
  4733.  1Ah    WORD    IRQ attributes (see #0604)
  4734.  1Ch    WORD    base port address (for I/O range 1)
  4735.  1Eh    BYTE    number of contiguous ports (for I/O range 1)
  4736.  1Fh    BYTE    bitmap of port attributes (for I/O range 1) (see #0605)
  4737.  20h    WORD    base port address (for I/O range 2)
  4738.  22h    BYTE    number of contiguous ports (for I/O range 2)
  4739.  23h    BYTE    bitmap of port attributes (for I/O range 2) (see #0605)
  4740.  24h    BYTE    number of I/O address lines decoded (16-bit PC Card only)
  4741.  25h    BYTE    extended status register setting (if present)
  4742.  26h    BYTE    bitmap of DMA attributes (see #0606)
  4743.         (note: value at call is used to set!)
  4744.  27h    BYTE    assigned DMA channel
  4745.  28h    BYTE    number of I/O windows in use on logical socket
  4746.  29h    BYTE    number of memory windows in use on logical socket
  4747. SeeAlso: #0599,#0620
  4748.  
  4749. Bitfields for Card Services Configuration attributes:
  4750. Bit(s)    Description    (Table 0601)
  4751.  0    exclusive
  4752.  1    IRQ active
  4753.  2    CardBus card
  4754.  3-5    reserved (0)
  4755.  6    DMA channel is active
  4756.  7    reserved (0)
  4757.  8    valid client
  4758.  9    overwrite voltage value
  4759.  10-15    reserved (0)
  4760. SeeAlso: #0600
  4761.  
  4762. Bitfields for Card Services Configuration interface type:
  4763. Bit(s)    Description    (Table 0602)
  4764.  0    memory interface
  4765.  1    I/O and memory interface
  4766.  2    CardBus interface
  4767.  3-7    reserved (0)
  4768. SeeAlso: #0600
  4769.  
  4770. Bitfields for Card Services Configuration registers:
  4771. Bit(s)    Description    (Table 0603)
  4772.  0    option value is value
  4773.  1    status value
  4774.  2    pin-replacement value
  4775.  3    copy value
  4776.  4    extended status value
  4777.  5-7    reserved (0)
  4778. SeeAlso: #0600
  4779.  
  4780. Bitfields for Card Services Configuration IRQ attributes:
  4781. Bit(s)    Description    (Table 0604)
  4782.  1-0    sharing
  4783.     00 no sharing
  4784.     01 time-multiplex sharing
  4785.     10 dynamic sharing
  4786.     11 reserved
  4787.  2    force pulse mode
  4788.  3    first used together
  4789.  4-7    reserved
  4790.  8    pulse IRQ has been assigned
  4791.  9-15    reserved
  4792. SeeAlso: #0600,#0605,#0606,#0611,#0614
  4793.  
  4794. Bitfields for Card Services Configuration Port attributes:
  4795. Bit(s)    Description    (Table 0605)
  4796.  0    shared I/O ports
  4797.  1    "CS_FirstCommonUsedCard"
  4798.  2    force alias access
  4799.  3    =1 sixteen-bit I/O
  4800.     =0 eight-bit I/O
  4801.  7-4    reserved (0)
  4802. SeeAlso: #0600,#0604,#0606,#0613
  4803.  
  4804. Bitfields for Card Services Configuration DMA attributes:
  4805. Bit(s)    Description    (Table 0606)
  4806.  1-0    sharing mode
  4807.     00 no sharing
  4808.     01 time-multiplex sharing
  4809.     10 dynamic sharing
  4810.     11 reserved
  4811.  3-2    DMA request signal
  4812.     00 reserved
  4813.     01 DMARQ uses pin SPKR#
  4814.     10 DMARQ uses pin IOIS16#
  4815.     11 DMARQ uses pin INPACK#
  4816.  4    DMA size
  4817.     0 eight bits
  4818.     1 sixteen bits
  4819.  7-5    reserved (0)
  4820. SeeAlso: #0600,#0604,#0605
  4821.  
  4822. Format of Card Services Tuple information:
  4823. Offset    Size    Description    (Table 0607)
  4824.  00h    WORD    logical socket number
  4825.  02h    WORD    attributes
  4826.         bit 0: return Link tuples
  4827.  04h    BYTE    code value of desired tuple
  4828.  05h    BYTE    reserved (0)
  4829.  06h    WORD    (ret) TupleFlags
  4830.  08h    DWORD    (ret) -> Card Services Link State Information
  4831.  0Ch    DWORD    (ret) -> Card Services CIS State Information
  4832.  10h    BYTE    (ret) code for tuple
  4833.  11h    BYTE    (ret) link value for tuple
  4834. SeeAlso: #0608
  4835.  
  4836. Format of Card Services GetTupleData record:
  4837. Offset    Size    Description    (Table 0608)
  4838.  00h    WORD    logical socket
  4839.  02h    WORD    attributes
  4840.  04h    BYTE    code value of desired tuple
  4841.  05h    BYTE    offset into tuple from link byte
  4842.  06h    WORD    flags
  4843.  08h    DWORD    -> Link
  4844.  0Ch    DWORD    -> CIS
  4845.  10h    WORD    (call) maximum amount of data to return (0004h)
  4846.  12h    WORD    (ret) amount of data returned
  4847.  14h    DWORD    (ret) tuple data
  4848. SeeAlso: #0607
  4849.  
  4850. Format of Card Services Client Registration record:
  4851. Offset    Size    Description    (Table 0609)
  4852.  00h    WORD    attributes
  4853.  02h    WORD    event mask
  4854.  04h    WORD    client data (passed to client event handler in DI)
  4855. --- 16-bit code ---
  4856.  06h    WORD    client data selector (passed to event handler in DS)
  4857.  08h    WORD    client data offset (passed to event handler in SI)
  4858.  0Ah    WORD    reserved
  4859. --- 32-bit code ---
  4860.  06h    WORD    reserved
  4861.  08h    DWORD    client data offset (passed to event handler in ESI)
  4862. ------
  4863.  0Ch    WORD    expected Card Services version (0210h for v2.10)
  4864.  
  4865. Bitfields for Card Services client event codes:
  4866. Bit(s)    Description    (Table 0610)
  4867.  0    change in write-protect status
  4868.  1    change in card lock
  4869.  2    ejection request
  4870.  3    insertion request
  4871.  4    battery is dead
  4872.  5    battery low
  4873.  6    change in Ready
  4874.  7    change in Card Detect
  4875.  8    power management change
  4876.  9    reset
  4877.  10    Socket Services updated
  4878.  11    extended status change
  4879. SeeAlso: #0609
  4880.  
  4881. Format of Card Services ReleaseIRQ record:
  4882. Offset    Size    Description    (Table 0611)
  4883.  00h    WORD    logical socket number
  4884.  02h    WORD    attributes (see #0604)
  4885.  04h    BYTE    assigned IRQ number to be released
  4886.  
  4887. Format of Card Services Release Configuration record:
  4888. Offset    Size    Description    (Table 0612)
  4889.  00h    WORD    logical socket number
  4890.  
  4891. Format of Card Services Request I/O record:
  4892. Offset    Size    Description    (Table 0613)
  4893.  00h    WORD    logical socket number
  4894.  02h    WORD    base port 1
  4895.  04h    BYTE    size of port range 1
  4896.  05h    BYTE    attributes for port range 1 (see #0605)
  4897.  06h    WORD    base port 2
  4898.  08h    BYTE    size of port range 2
  4899.  09h    BYTE    attributes for port range 2 (see #0605)
  4900.  0Ah    BYTE    number of address lines (typically 16)
  4901. SeeAlso: #0614,#0612
  4902.  
  4903. Format of Card Services Request IRQ record:
  4904. Offset    Size    Description    (Table 0614)
  4905.  00h    WORD    logical socket number
  4906.  02h    WORD    attributes (see #0604)
  4907.  04h    BYTE    (ret) assigned IRQ number, if successful
  4908.  05h    BYTE    IRQ info (see #0615)
  4909.  06h    WORD    bitmap of available IRQs (bit 0 = IRQ0, etc.)
  4910.         (only if bit 4 of IRQ info set)
  4911. SeeAlso: #0613,#0612
  4912.  
  4913. Bitfields for Card Services Request IRQ info flags:
  4914. Bit(s)    Description    (Table 0615)
  4915.  7    IRQ is shared
  4916.  6    pulse (edge-triggered) interrupt
  4917.  5    level interrupt
  4918.  4    use IRQ bitmap
  4919. --- bit 4 set ---
  4920.  3    vendor-specific interrupt
  4921.  2    bus error
  4922.  1    I/O check interrupt
  4923.  0    NMI
  4924. --- bit 4 clear ---
  4925.  3-0    IRQ number
  4926. SeeAlso: #0614
  4927.  
  4928. Format of Card Services Request Window record:
  4929. Offset    Size    Description    (Table 0616)
  4930.  00h    WORD    logical socket number
  4931.  02h    WORD    attributes (see #0617)
  4932.  04h    DWORD    system base adress
  4933.  08h    DWORD    size of memory window
  4934.  0Ch    BYTE    additional info
  4935.         if attributes bit ??? is set, this is the address-lines field
  4936.         otherwise, this is the access-speed field (see #0618)
  4937.  
  4938. Bitfields for Card Services Request Window attributes:
  4939. Bit(s)    Description    (Table 0617)
  4940.  0    I/O window instead of memory window
  4941.  1    attribute memory instead of normal memory (16-bit PC Cards only)
  4942.  2    window enabled
  4943.  3    16-bit data path instead of 8-bit path (16-bit PC Cards only, v2.10+)
  4944.     (ignored if bit 9 set)
  4945.  4    size is given in 16K pages (invalid for CardBus PC Cards)
  4946.  5    shared (invalid for CardBus)
  4947.  6    first shared (invalid for CardBus)
  4948.  7    "CS_BindingSpecific" (memory window only)
  4949.  8    card offsets are window-size granular (16-bit PC Card memory window)
  4950.  9    32-bit data path (CardBus only)
  4951.  10    reserved (0)
  4952.  12-11    prefetch/cache
  4953.     00 neither prefetchable nor cacheable
  4954.     01 prefetchable but not cacheable
  4955.     10 prefetchable and cachable
  4956.     11 reserved
  4957.  15-13    decoded base address register number (CardBus only)
  4958. SeeAlso: #0616,#0618
  4959.  
  4960. Bitfields for Card Services Request Window access-speed:
  4961. Bit(s)    Description    (Table 0618)
  4962.  6-3    mantissa
  4963.     0000 use device speed code
  4964.     0001  1.0
  4965.     0010  1.2
  4966.     0011  1.2 ???
  4967.     0100  1.5
  4968.     0101  2.0
  4969.     0110  2.5
  4970.     0111  3.0
  4971.     1000  3.5
  4972.     1001  4.0
  4973.     1010  4.5
  4974.     1011  5.0
  4975.     1100  5.5
  4976.     1101  6.0
  4977.     1110  7.0
  4978.     1111  8.0
  4979. --- if mantissa==0 ---
  4980.  2-0    device speed code
  4981.     000 reserved
  4982.     001 250 ns
  4983.     010 200 ns
  4984.     011 150 ns
  4985.     100 100 ns
  4986.     101-111 reserved
  4987. --- if mantissa<>0 ---
  4988.  2-0    speed exponent
  4989.     000    1 ns
  4990.     001    10 ns
  4991.     010   100 ns
  4992.     011    1 us
  4993.     100    10 us
  4994.     101   100 us
  4995.     110    1 ms
  4996.     111    10 ms
  4997. SeeAlso: #0616,#0617
  4998.  
  4999. Format of Card Services Request/Release Exclusive Access record:
  5000. Offset    Size    Description    (Table 0619)
  5001.  00h    WORD    logical socket number
  5002.  02h    WORD    attributes (currently all reserved, must be 0000h)
  5003.  
  5004. Format of Card Services Request Configuration record:
  5005. Offset    Size    Description    (Table 0620)
  5006.  00h    WORD    socket (usually 0000h)
  5007.  02h    WORD    attributes (see #0601)
  5008.  04h    BYTE    Vcc value
  5009.  05h    BYTE    Vpp1 value
  5010.  06h    BYTE    Vpp2 value
  5011.  07h    BYTE    interface type (see #0602)
  5012.  08h    DWORD    base address of configuration registers
  5013.  0Ch    BYTE    card's Status register setting (if present)
  5014.  0Dh    BYTE    card's Pin register setting (if present)
  5015.  0Eh    BYTE    card's Socket/Copy register setting (if present)
  5016.  0Fh    BYTE    card's Option register setting (if present)
  5017.  10h    BYTE    bitmap of present card configuration registers
  5018.  11h    BYTE    extended status register setting (if present)
  5019. SeeAlso: #0600
  5020. --------X-1AB000-----------------------------
  5021. INT 1A U - HP 100LX/200LX - PCMCIA - ???
  5022.     AX = B000h
  5023.     ES:BX -> parameter block ???
  5024. Return: CF clear if ???
  5025.     CF set if ???
  5026. Note:    called by HP 100LX/200LX PCMCIA client CIC100.EXE
  5027. --------d-1AB001CX4D52-----------------------
  5028. INT 1A - Microsoft Real-Time Compression Interface (MRCI) - ROM-BASED SERVER
  5029.     AX = B001h
  5030.     CX = 4D52h ("MR")
  5031.     DX = 4349h ("CI")
  5032. Return: CX = 4943h ("IC") if installed
  5033.     DX = 524Dh ("RM") if installed
  5034.         ES:DI -> MRCINFO structure (see #0621)
  5035. Note:    this call is functionally identical to INT 2F/AX=4A12h, which should
  5036.       be called first, as this call is used for the first, ROM-based
  5037.       MRCI server, while the other call is used for RAM-based servers
  5038.       which may be partially or entirely replacing a prior server
  5039. SeeAlso: INT 2F/AX=4A12h
  5040.  
  5041. Format of MRCINFO structure:
  5042. Offset    Size    Description    (Table 0621)
  5043.  00h  4 BYTEs    vendor signature
  5044.         "MSFT" Microsoft
  5045.  04h    WORD    server version (high=major)
  5046.  06h    WORD    MRCI specification version
  5047.  08h    DWORD    address of server entry point (see #0623)
  5048.  0Ch    WORD    bit flags: server capabilities (see #0622)
  5049.  0Eh    WORD    bit flags: hardware assisted capabilities (see #0622)
  5050.  10h    WORD    maximum block size supported by server (at least 8192 bytes)
  5051.  
  5052. Bitfields for MRCI capabilities:
  5053. Bit(s)    Description    (Table 0622)
  5054.  0    standard compress
  5055.  1    standard decompress
  5056.  2    update compress
  5057.  3    MaxCompress (not present in initial public release)
  5058.  4    reserved
  5059.  5    incremental decompress
  5060.  6    MRCI 2.0 standard compress
  5061.  7    MRCI 2.0 standard decompress
  5062.  8-14    reserved
  5063.  15    this structure is in ROM and can't be modified
  5064.     (server capabilities only)
  5065.  
  5066. (Table 0623)
  5067. Call MRCI entry point with:
  5068.     DS:SI -> MRCREQUEST structure (see #0624)
  5069.     CX = type of client (0000h application, 0001h file system)
  5070.     AX = operation
  5071.         0001h perform standard compression
  5072.         0002h perform standard decompression
  5073.         0004h perform update compression
  5074.         0008h perform MaxCompress
  5075.         0020h perform incremental decompression
  5076.         0040h perform MRCI 2.0 standard compression
  5077.         0080h perform MRCI 2.0 standard decompression
  5078.     AX = FFFFh clear flags
  5079.         BX = bitmask of flags to clear (set bits in BX are flags to clear)
  5080. Return: AX = status
  5081.         0000h successful
  5082.         0001h invalid function
  5083.         0002h server busy, try again
  5084.         0003h destination buffer too small
  5085.         0004h incompressible data
  5086.         0005h bad compressed data format
  5087.     BP destroyed (MS-DOS 6.2)
  5088. Note:    MRCI driver may chain to a previous driver
  5089.  
  5090. Format of MRCREQUEST structure:
  5091. Offset    Size    Description    (Table 0624)
  5092.  00h    DWORD    pointer to source buffer
  5093.  04h    WORD    size of source buffer (0000h = 64K)
  5094.  06h    WORD    (UpdateCompress only)
  5095.         (call) offset in source buffer of beginning of changed data
  5096.         (ret) offset in destination buffer of beginning of changed
  5097.               compressed data
  5098.  08h    DWORD    pointer to destination buffer
  5099.         must contain original compressed data for UpdateCompress
  5100.  0Ch    WORD    size of destination buffer (0000h = 64K)
  5101.         any compression: size of buffer for compressed data
  5102.         standard decompression: number of bytes to be decompressed
  5103.         incremental decompression: number of byte to decompress now
  5104.         (ret) actual size of resulting data
  5105.  0Eh    WORD    client compressed data storage allocation size
  5106.  10h    DWORD    incremental decompression state data
  5107.         set to 00000000h before first incremental decompression call
  5108. Notes:    the source and destination buffers may not overlap
  5109.     the source and destination buffer sizes should normally be the same
  5110.     application should not update the contents of the MRCREQUEST structure
  5111.       between incremental decompression calls
  5112. --------X-1AB101-----------------------------
  5113. INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK
  5114.     AX = B101h
  5115. Return: AH = 00h if installed
  5116.         CF clear
  5117.         EDX = 20494350h (' ICP')
  5118.         EDI = physical address of protected-mode entry point (see #0627)
  5119.         AL = PCI hardware characteristics (see #0626)
  5120.         BH = PCI interface level major version (BCD)
  5121.         BL = PCI interface level minor version (BCD)
  5122.         CL = number of last PCI bus in system
  5123.     EAX, EBX, ECX, and EDX may be modified
  5124.     all other flags (except IF) may be modified
  5125. Note:    this function may require up to 1024 byte of stack; it will not enable
  5126.       interrupts if they were disabled before making the call
  5127. SeeAlso: AX=B181h
  5128.  
  5129. (Table 0625)
  5130. Values for PCI BIOS v2.0c status codes:
  5131.  00h    successful
  5132.  81h    unsupported function
  5133.  83h    bad vendor ID
  5134.  86h    device not found
  5135.  87h    bad PCI register number
  5136.  
  5137. Bitfields for PCI hardware characteristics:
  5138. Bit(s)    Description    (Table 0626)
  5139.  0    configuration space access mechanism 1 supported
  5140.  1    configuration space access mechanism 2 supported
  5141.  2-3    reserved
  5142.  4    Special Cycle generation mechanism 1 supported
  5143.  5    Special Cycle generation mechanism 2 supported
  5144.  6-7    reserved
  5145.  
  5146. (Table 0627)
  5147. Call protected-mode entry point with:
  5148.     registers as for real/V86-mode INT call
  5149.     CS = ring 0 descriptor with access to full address space
  5150. Return: as for real/V86-mode call
  5151. --------X-1AB102-----------------------------
  5152. INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE
  5153.     AX = B102h
  5154.     CX = device ID
  5155.     DX = vendor ID
  5156.     SI = device index (0-n)
  5157. Return: CF clear if successful
  5158.     CF set on error
  5159.     AH = status (00h,83h,86h) (see #0625)
  5160.         00h successful
  5161.         BH = bus number
  5162.         BL = device/function number (bits 7-3 device, bits 2-0 func)
  5163.     EAX, EBX, ECX, and EDX may be modified
  5164.     all other flags (except IF) may be modified
  5165. Notes:    this function may require up to 1024 byte of stack; it will not enable
  5166.       interrupts if they were disabled before making the call
  5167.     device ID FFFFh may be reserved as a wildcard in future implementations
  5168.     the meanings of BL and BH on return were exchanged between the initial
  5169.       drafts of the specification and final implementation
  5170.     all devices sharing a single vendor ID and device ID may be enumerated
  5171.       by incrementing SI from 0 until error 86h is returned
  5172. SeeAlso: AX=B182h
  5173. --------X-1AB103-----------------------------
  5174. INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE
  5175.     AX = B103h
  5176.     ECX = class code (see also #F057,#0628)
  5177.         bits 31-24 unused
  5178.         bits 23-16 class
  5179.         bits 15-8  subclass
  5180.         bits 7-0   programming interface
  5181.     SI = device index (0-n)
  5182. Return: CF clear if successful
  5183.     CF set on error
  5184.     AH = status (00h,86h) (see #0625)
  5185.         00h successful
  5186.         BH = bus number
  5187.         BL = device/function number (bits 7-3 device, bits 2-0 func)
  5188.         86h device not found
  5189.     EAX, EBX, ECX, and EDX may be modified
  5190.     all other flags (except IF) may be modified
  5191. Notes:    this function may require up to 1024 byte of stack; it will not enable
  5192.       interrupts if they were disabled before making the call
  5193.     the meanings of BL and BH on return were exchanged between the initial
  5194.       drafts of the specification and final implementation
  5195.     all devices sharing the same Class Code may be enumerated by
  5196.       incrementing SI from 0 until error 86h is returned
  5197. SeeAlso: AX=B183h
  5198. --------X-1AB106-----------------------------
  5199. INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS
  5200.     AX = B106h
  5201.     BL = bus number
  5202.     EDX = Special Cycle data
  5203. Return: CF clear if successful
  5204.     CF set on error
  5205.     AH = status (00h,81h) (see #0625)
  5206.     EAX, EBX, ECX, and EDX may be modified
  5207.     all other flags (except IF) may be modified
  5208. Note:    this function may require up to 1024 byte of stack; it will not enable
  5209.       interrupts if they were disabled before making the call
  5210. SeeAlso: AX=B186h,INT 2F/AX=1684h/BX=304Ch
  5211. --------X-1AB108-----------------------------
  5212. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE
  5213.     AX = B108h
  5214.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  5215.     BH = bus number
  5216.     DI = register number (0000h-00FFh) (see #0628)
  5217. Return: CF clear if successful
  5218.         CL = byte read
  5219.     CF set on error
  5220.     AH = status (00h,87h) (see #0625)
  5221.     EAX, EBX, ECX, and EDX may be modified
  5222.     all other flags (except IF) may be modified
  5223. Notes:    this function may require up to 1024 byte of stack; it will not enable
  5224.       interrupts if they were disabled before making the call
  5225.     the meanings of BL and BH on entry were exchanged between the initial
  5226.       drafts of the specification and final implementation
  5227. SeeAlso: AX=B109h,AX=B10Ah,AX=B188h,INT 2F/AX=1684h/BX=304Ch
  5228. --------X-1AB109-----------------------------
  5229. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD
  5230.     AX = B109h
  5231.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  5232.     BH = bus number
  5233.     DI = register number (0000h-00FFh) (see #0628)
  5234. Return: CF clear if successful
  5235.         CX = word read
  5236.     CF set on error
  5237.     AH = status (00h,87h) (see #0625)
  5238.     EAX, EBX, ECX, and EDX may be modified
  5239.     all other flags (except IF) may be modified
  5240. Notes:    this function may require up to 1024 byte of stack; it will not enable
  5241.       interrupts if they were disabled before making the call
  5242.     the meanings of BL and BH on entry were exchanged between the initial
  5243.       drafts of the specification and final implementation
  5244. SeeAlso: AX=B108h,AX=B10Ah,AX=B189h,INT 2F/AX=1684h/BX=304Ch
  5245. --------X-1AB10A-----------------------------
  5246. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD
  5247.     AX = B10Ah
  5248.     BH = bus number
  5249.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  5250.     DI = register number (0000h-00FFh) (see #0628)
  5251. Return: CF clear if successful
  5252.         ECX = dword read
  5253.     CF set on error
  5254.     AH = status (00h,87h) (see #0625)
  5255.     EAX, EBX, ECX, and EDX may be modified
  5256.     all other flags (except IF) may be modified
  5257. Notes:    this function may require up to 1024 byte of stack; it will not enable
  5258.       interrupts if they were disabled before making the call
  5259.     the meanings of BL and BH on entry were exchanged between the initial
  5260.       drafts of the specification and final implementation
  5261. SeeAlso: AX=B108h,AX=B109h,AX=B18Ah,INT 2F/AX=1684h/BX=304Ch
  5262.  
  5263. Format of PCI Configuration Data:
  5264. Offset    Size    Description    (Table 0628)
  5265.  00h    WORD    vendor ID (read-only) (see #0629)
  5266.         FFFFh returned if requested device non-existent
  5267.  02h    WORD    device ID (read-only)
  5268.  04h    WORD    command register (see #0630)
  5269.  06h    WORD    status register (see #0631)
  5270.  08h    BYTE    revision ID
  5271.  09h  3 BYTEs    class code
  5272.         bits 7-0: programming interface
  5273.         bits 15-8: sub-class
  5274.         bits 23-16: class code (see also #F057)
  5275.  0Ch    BYTE    cache line size
  5276.  0Dh    BYTE    latency timer
  5277.  0Eh    BYTE    header type
  5278.         bits 6-0: header format
  5279.             00h other
  5280.             01h PCI-to-PCI bridge
  5281.             02h PCI-to-CardBus bridge
  5282.         bit 7: multi-function device
  5283.  0Fh    BYTE    Built-In Self-Test result (see #0632)
  5284. ---header type 00h---
  5285.  10h    DWORD    base address 0 (see #0633)
  5286.         (OpenHCI) base address of host controller registers (see #3330)
  5287.  14h    DWORD    base address 1
  5288.  18h    DWORD    base address 2
  5289.  1Ch    DWORD    base address 3
  5290.  20h    DWORD    base address 4
  5291.  24h    DWORD    base address 5
  5292.  28h    DWORD    CardBus CIS pointer (read-only) (see #0635)
  5293.  2Ch    WORD    subsystem vendor ID or 0000h
  5294.  2Eh    WORD    subsystem ID or 0000h
  5295.  30h    DWORD    expansion ROM base address (see #0634)
  5296.  34h    BYTE    offset of capabilities list within configuration space (R/O)
  5297.         (only valid if status register bit 4 set) (see #3325)
  5298.  35h  3 BYTEs    reserved
  5299.  38h    DWORD    reserved
  5300.  3Ch    BYTE    interrupt line
  5301.         00h = none, 01h = IRQ1 to 0Fh = IRQ15
  5302.  3Dh    BYTE    interrupt pin (read-only)
  5303.         (00h = none, else indicates INTA# to INTD#)
  5304.  3Eh    BYTE    minimum time bus master needs PCI bus ownership, in 250ns units
  5305.         (read-only)
  5306.  3Fh    BYTE    maximum latency, in 250ns units (bus masters only) (read-only)
  5307.  40h 48 DWORDs    varies by device (see #0638,#0639,#0640,#0643)
  5308. ---header type 01h---
  5309.  10h    DWORD    base address 0 (see #0633)
  5310.  14h    DWORD    base address 1
  5311.  18h    BYTE    primary bus number (for bus closer to host processor)
  5312.  19h    BYTE    secondary bus number (for bus further from host processor)
  5313.  1Ah    BYTE    subordinate bus number
  5314.  1Bh    BYTE    secondary latency timer
  5315.  1Ch    BYTE    I/O base (see #0636)
  5316.  1Dh    BYTE    I/O limit (see #0636)
  5317.  1Eh    WORD    secondary status
  5318.  20h    WORD    memory base (see #0637)
  5319.  22h    WORD    memory limit
  5320.  24h    WORD    prefetchable memory base
  5321.  26h    WORD    prefetchable memory limit
  5322.  28h    DWORD    prefetchable base, upper 32 bits
  5323.  2Ch    DWORD    prefetchable limit, upper 32 bits
  5324.  30h    WORD    I/O base, upper 16 bits
  5325.  32h    WORD    I/O limit, upper 16 bits
  5326.  34h    DWORD    reserved
  5327.  38h    DWORD    expansion ROM base address
  5328.  3Ch    BYTE    interrupt line
  5329.  3Dh    BYTE    interrupt pin (read-only)
  5330.  3Eh    WORD    bridge control
  5331.  40h 48 DWORDs    varies by device (see #0638,#0639,#0640,#0643)
  5332. ---header type 02h---
  5333.  10h    DWORD    CardBus Socket/ExCa base address (see #3309)
  5334.         bits 31-12: start address of socket interface register block
  5335.               in 4K blocks
  5336.         bits 11-0: reserved (0)
  5337.  14h    BYTE    offset of capabilities list within configuration space (R/O)
  5338.         (only valid if status register bit 4 set) (see #3325)
  5339.  15h    BYTE    reserved
  5340.  16h    WORD    secondary status
  5341.  18h    BYTE    PCI bus number
  5342.  19h    BYTE    CardBus bus number
  5343.  1Ah    BYTE    subordinate bus number
  5344.  1Bh    BYTE    CardBus latency timer
  5345.  1Ch    DWORD    memory base address 0
  5346.  20h    DWORD    memory limit 0
  5347.  24h    DWORD    memory base address 1
  5348.  28h    DWORD    memory limit 1
  5349.  2Ch    WORD    I/O base address 0
  5350.  2Eh    WORD    I/O base address 0 high word (optional)
  5351.  30h    WORD    I/O limit 0
  5352.  32h    WORD    I/O limit 0 high word (optional)
  5353.  34h    WORD    I/O base address 1
  5354.  36h    WORD    I/O base address 1 high word (optional)
  5355.  38h    WORD    I/O limit 1
  5356.  3Ah    WORD    I/O limit 1 high word (optional)
  5357.  3Ch    BYTE    interrupt line
  5358.  3Dh    BYTE    interrupt pin (read-only) (no interrupt used if 00h)
  5359.  3Eh    WORD    bridge control
  5360.  40h    WORD    subsystem vendor ID
  5361.  42h    WORD    subsystem device ID
  5362.  44h    DWORD    16-bit PC Card legacy mode base address (for accessing ExCa
  5363.           registers)
  5364.  48h 14 DWORDs    reserved
  5365.  80h 32 DWORDs    varies by device (see #0638,#0639,#0640,#0643)
  5366.  
  5367. (Table 0629)
  5368. Values for PCI vendor ID:
  5369.  003Dh    Martin-Marietta Corporation
  5370.  0E11h    Compaq
  5371.  1000h    Symbios Logic Inc (formerly NCR)
  5372.  1002h    ATI (see #3444)
  5373.  1003h    ULSI Systems
  5374.  1004h    VLSI Technologies
  5375.  1005h    Avance Logics (ADL)
  5376.  1006h    Reply Group
  5377.  1007h    Netframe Systems Inc.
  5378.  1008h    Epson
  5379.  100Ah    Phoenix Technologies
  5380.  100Bh    National Semiconductor
  5381.  100Ch    Tseng Labs (see #3443) (also ID 10BEh)
  5382.  100Dh    AST Research
  5383.  100Eh    Weitek
  5384.  1010h    Video Logic Ltd
  5385.  1011h    DEC (see #3442)
  5386.  1012h    Micronics Computers
  5387.  1013h    Cirrus Logic (see #3440,#0028)
  5388.  1014h    IBM
  5389.  1015h    LSI Logic Corp. of Canada
  5390.  1016h    ICL Personal Systems
  5391.  1017h    SPEA Software AG
  5392.  1018h    Unisys
  5393.  1019h    EliteGroup Computer Sys
  5394.  101Ah    NCR/AT&T GIS
  5395.  101Bh    Vitesse Semiconductor
  5396.  101Ch    Western Digital
  5397.  101Eh    AMI
  5398.  101Fh    Picturetel
  5399.  1020h    Hitachi Computer Electronics
  5400.  1021h    Oki Electric Industry
  5401.  1022h    Advanced Micro Devices (see #3439)
  5402.  1023h    Trident Microsystems (see #3441)
  5403.  1024h    Zenith Data Systems
  5404.  1025h    Acer
  5405.  1028h    Dell Computer Corporation
  5406.  1029h    Siemens Nixdorf
  5407.  102Ah    LSI Logic, Headland Division
  5408.  102Bh    Matrox
  5409.  102Ch    Chips & Technologies
  5410.  102Dh    Wyse Technologies
  5411.  102Eh    Olivetti Advanced Technology
  5412.  102Fh    Toshiba America
  5413.  1030h    TMC Research
  5414.  1031h    Miro / Micro Computer Products AG
  5415.  1032h    Compaq
  5416.  1033h    NEC Corporation
  5417.  1034h    Burndy Corporation
  5418.  1035h    Computers and Communications Research Lab
  5419.  1036h    Future Domain
  5420.  1037h    Hitachi Micro Systems
  5421.  1038h    AMP Incorporated
  5422.  1039h    Silicon Integrated System (SIS)
  5423.  103Ah    Seiko Epson Corporation
  5424.  103Bh    Tatung Corp. of America
  5425.  103Ch    Hewlett-Packard
  5426.  103Eh    Solliday
  5427.  103Fh    Logic Modeling
  5428.  1040h    Kubota Pacific
  5429.  1041h    Computrend
  5430.  1042h    PC Technology (see also PORT 03F0h"PCTech")
  5431.  1043h    Asustek
  5432.  1044h    Distributed Processing Technology (DPT)
  5433.  1045h    OPTi (see #3445)
  5434.  1046h    IPC Corporation, Ltd.
  5435.  1047h    Genoa Systems Corp.
  5436.  1048h    Elsa GmbH
  5437.  1049h    Fountain Technology
  5438.  104Ah    SGS Thomson Microelectric
  5439.  104Bh    BusLogic
  5440.  104Ch    Texas Instruments
  5441.  104Dh    Sony Corporation
  5442.  104Eh    Oak Technology
  5443.  104Fh    Co-Time Computer Ltd.
  5444.  1050h    Winbond
  5445.  1051h    Anigma Corp.
  5446.  1052h    Young Micro Systems
  5447.  1054h    Hitachi, Ltd.
  5448.  1055h    EFAR Microsystems
  5449.  1056h    ICL
  5450.  1057h    Motorola
  5451.  1058h    Electronics and Telecommunications Research
  5452.  1059h    Teknor Microsystems
  5453.  105Ah    Promise Technology
  5454.  105Bh    Foxconn International
  5455.  105Ch    Wipro Infotech Ltd.
  5456.  105Dh    Number 9 Computer Company
  5457.  105Eh    VTech Engineering Canada, Ltd.
  5458.  105Fh    Infotronic America, Inc.
  5459.  1060h    United Microelectronics (UMC)
  5460.  1061h    8x8 (X Tech)
  5461.  1062h    Maspar Computer Copr.
  5462.  1063h    Ocean Office Automation
  5463.  1064h    Alcatel Cit
  5464.  1065h    Texas Microsystems
  5465.  1066h    PicoPower Technology
  5466.  1067h    Mitsubishi Electronics
  5467.  1068h    Diversified Technology
  5468.  1069h    Mylex Corporation
  5469.  106Ah    Aten Research
  5470.  106Bh    Apple Computer
  5471.  106Ch    Hyundai Electronics America
  5472.  106Dh    Sequent
  5473.  106Eh    DFI Inc.
  5474.  106Fh    City Gate Development, Ltd.
  5475.  1070h    Daewoo Telecom Ltd.
  5476.  1071h    Mitac
  5477.  1072h    GIT Co., Ltd.
  5478.  1073h    Yamaha Corporation
  5479.  1074h    NexGen Microsystems
  5480.  1075h    Advanced Integration Research
  5481.  1076h    Chaintech Computer Co. Ltd.
  5482.  1077h    Q Logic
  5483.  1078h    Cyrix Corporation
  5484.  1079h    I-Bus
  5485.  107Ah    Networth
  5486.  107Bh    Gateway 2000
  5487.  107Ch    Goldstar Co. Ltd.
  5488.  107Dh    Leadtek Research
  5489.  107Eh    Interphase Corporation
  5490.  107Fh    Data Technology Corporation (DTC)
  5491.  1080h    Contaq Microsystems
  5492.  1081h    Supermac Technology
  5493.  1082h    EFA Corporation of America
  5494.  1083h    Forex Computer Corporation
  5495.  1084h    Parador
  5496.  1085h    Tulip Computers Int'l BV
  5497.  1086h    J. Bond Computer Systems
  5498.  1087h    Cache Computer
  5499.  1088h    Microcomputer Systems (M) Son
  5500.  1089h    Data General Corporation
  5501.  108Ah    Bit3 Computer
  5502.  108Ch    Elonex PLC (Oakleigh Systems, Inc)
  5503.  108Dh    Olicom
  5504.  108Eh    Sun Microsystems
  5505.  108Fh    Systemsoft Corporation
  5506.  1090h    Encore Computer Corporation
  5507.  1091h    Intergraph Corporation
  5508.  1092h    Diamond Computer Systems
  5509.  1093h    National Instruments
  5510.  1094h    First International Computers (FIC)
  5511.  1095h    CMD Technology, Inc.
  5512.  1096h    Alacron
  5513.  1097h    Appian Technology
  5514.  1098h    Vision / Quantum Designs Ltd
  5515.  1099h    Samsung Electronics Co. Ltd.
  5516.  109Ah    Packard Bell
  5517.  109Bh    Gemlight Computer Ltd.
  5518.  109Ch    Megachips Corporation
  5519.  109Dh    Zida Technologies
  5520.  109Eh    Brooktree Corporation
  5521.  109Fh    Trigem Computer Inc.
  5522.  10A0h    Meidensha Corporation
  5523.  10A1h    Juko Electronics Inc. Ltd.
  5524.  10A2h    Quantum Corporation
  5525.  10A3h    Everex Systems Inc.
  5526.  10A4h    Globe Manufacturing Sales
  5527.  10A5h    Racal Interlan
  5528.  10A6h    Informtech Industrial Ltd.
  5529.  10A7h    Benchmarq Microelectronics
  5530.  10A8h    Sierra Semiconductor
  5531.  10A9h    Silicon Graphics
  5532.  10AAh    ACC Microelectronics
  5533.  10ABh    Digicom
  5534.  10ACh    Honeywell IASD
  5535.  10ADh    Symphony Labs
  5536.  10AEh    Cornerstone Technology
  5537.  10AFh    Microcomputer Systems
  5538.  10B0h    CardExpert Technology
  5539.  10B1h    Cabletron Systems, Inc.
  5540.  10B2h    Raytheon Company
  5541.  10B3h    Databook Inc
  5542.  10B4h    STB Systems
  5543.  10B5h    PLX Technology
  5544.  10B7h    3com Corporation
  5545.  10B8h    Standard Microsystems Corporation (SMC)
  5546.  10B9h    Acer Labs Inc.
  5547.  10BAh    Mitsubishi Electronics Corp.
  5548.  10BBh    Dapha Electronics Corporation
  5549.  10BCh    Advanced Logic Research Inc. (ALR)
  5550.  10BDh    Surecom Technology
  5551.  10BEh    Tseng Labs International Corp. (see #3443)
  5552.  10BFh    Most Inc.
  5553.  10C0h    Boca Research Inc.
  5554.  10C1h    ICM Corp. Ltd.
  5555.  10C2h    Auspex Systems Inc.
  5556.  10C3h    Samsung Semiconductors
  5557.  10C4h    Award Software International Inc.
  5558.  10C5h    Xerox Corporation
  5559.  10C6h    Rambus Inc.
  5560.  10C7h    Media Vision
  5561.  10C8h    Neomagic Corporation
  5562.  10C9h    DataExpert Corporation
  5563.  10CAh    Fujitsu
  5564.  10CBh    Omron Corporation
  5565.  10CCh    Mentor Arc Inc.
  5566.  10CDh    Advanced System Products
  5567.  10CEh    Radius Inc.
  5568.  10CFh    Citicorp TTI
  5569.  10D0h    Fujitsu Limited
  5570.  10D1h    Future+ Systems
  5571.  10D2h    Molex Incorporated
  5572.  10D3h    Jabil Circuit Inc.
  5573.  10D4h    Hualon Microelectronics
  5574.  10D5h    Autologic Inc.
  5575.  10D6h    Cetia
  5576.  10D7h    BCM Advanced Research
  5577.  10D8h    Advanced Peripherals Labs
  5578.  10D9h    Macronix International Co. Ltd
  5579.  10DAh    Thomas-Conrad Corporation
  5580.  10DBh    Rohm Research
  5581.  10DCh    CERN/ECP/EDU
  5582.  10DDh    Evans & Sutherland
  5583.  10DEh    NVidia Corporation
  5584.  10DFh    Emulex Corporation
  5585.  10E0h    Integrated Micro Solutions (IMS)
  5586.  10E1h    TekRAM Technology Corporation Ltd.
  5587.  10E2h    Aptix Corporation
  5588.  10E3h    Newbridge Microsystems
  5589.  10E4h    Tandem Computers
  5590.  10E5h    Micro Industries
  5591.  10E6h    Gainbery Computer Products Inc.
  5592.  10E7h    Vadem
  5593.  10E8h    Applied Micro Circuits Corp.
  5594.  10E9h    Alps Electronic Corp. Ltd.
  5595.  10EAh    Integraphics Systems
  5596.  10EBh    Artist Graphics
  5597.  10ECh    Realtek Semiconductor
  5598.  10EDh    ASCII Corporation
  5599.  10EEh    Xilinx Corporation
  5600.  10EFh    Racore Computer Products
  5601.  10F0h    Peritek Corporation
  5602.  10F1h    Tyan Computer
  5603.  10F2h    Achme Computer Inc.
  5604.  10F3h    Alaris Inc.
  5605.  10F4h    S-MOS Systems
  5606.  10F5h    NKK Corporation
  5607.  10F6h    Creative Electronic Systems SA
  5608.  10F7h    Matsushita Electric Industrial Corp. Ltd.
  5609.  10F8h    Altos India Ltd.
  5610.  10F9h    PC Direct
  5611.  10FAh    Truevision
  5612.  10FBh    Thesys Microelectronics
  5613.  10FCh    I/O Data Device Inc.
  5614.  10FDh    Soyo Technology Corp. Ltd.
  5615.  10FEh    Fast Electronic GmbH
  5616.  10FFh    N-Cube
  5617.  1100h    Jazz Multimedia
  5618.  1101h    Initio Corporation
  5619.  1102h    Creative Labs
  5620.  1103h    Triones Technologies Inc.
  5621.  1104h    Rasterops
  5622.  1105h    Sigma Designs, Inc.
  5623.  1106h    VIA Technologies
  5624.  1107h    Stratus Computer
  5625.  1108h    Proteon Inc.
  5626.  1109h    Cogent Data Technologies
  5627.  110Ah    Siemens AG / Siemens Nixdorf AG
  5628.  110Bh    Xenon Microsystems
  5629.  110Ch    Mini-Max Technology Inc.
  5630.  110Dh    ZNyX Corporation
  5631.  110Eh    CPU Technology
  5632.  110Fh    Ross Technology
  5633.  1110h    Powerhouse Systems
  5634.  1111h    Santa Cruz Operation (SCO)
  5635.  1112h    Rockwell / RNS division of Meret Communications Inc.
  5636.  1113h    Accton Technology Corporation
  5637.  1114h    Atmel Corporation
  5638.  1115h    DuPont Pixel Systems
  5639.  1116h    Data Translation
  5640.  1117h    Datacube Inc.
  5641.  1118h    Berg Electronics
  5642.  1119h    Vortex Computersysteme GmbH
  5643.  111Ah    Efficient Networks, Inc.
  5644.  111Bh    Teledyne Electronic Systems
  5645.  111Ch    Tricord Systems, Inc.
  5646.  111Dh    Integrated Device Technology
  5647.  111Eh    Eldec Corporation
  5648.  111Fh    Precision Digital Images
  5649.  1120h    EMC Corporation
  5650.  1121h    Zilog
  5651.  1122h    Multi-tech Systems, Inc.
  5652.  1124h    Leutron Vision AG
  5653.  1125h    Eurocore
  5654.  1126h    Vigra
  5655.  1127h    FORE Systems
  5656.  1128h    ???
  5657.  1129h    Firmworks
  5658.  112Ah    Hermes Electronics Co.
  5659.  112Bh    Linotype - Hell AG
  5660.  112Dh    Ravicad
  5661.  112Eh    Infomedia MicroElectronics Inc
  5662.  112Fh    Imaging Technology
  5663.  1130h    Computervision
  5664.  1131h    Philips Semiconductors
  5665.  1132h    Mitel Corp
  5666.  1133h    Eicon Technology Corporation
  5667.  1134h    Mercury Computer Systems Inc
  5668.  1135h    Fuji Xerox Co Ltd
  5669.  1136h    Momentum Data Systems
  5670.  1137h    Cisco Systems Inc
  5671.  1138h    Ziatech Corporation
  5672.  1139h    Dynamic Pictures Inc
  5673.  113Ah    FWB Inc
  5674.  113Ch    Cyclone Microsystems
  5675.  113Dh    Leading Edge Products Inc
  5676.  113Eh    Sanyo Electric Co
  5677.  113Fh    Equinox Systems
  5678.  1140h    Intervoice Inc
  5679.  1141h    Crest Microsystem Inc
  5680.  1142h    Alliance Semiconductor Corp
  5681.  1143h    Netpower, Inc.
  5682.  1144h    Cincinnati Milacron
  5683.  1145h    Workbit Corp
  5684.  1146h    Force Computers
  5685.  1147h    Interface Corp.
  5686.  1148h    Schneider & Koch Co.
  5687.  1149h    Win System Corporation
  5688.  114Ah    VMIC
  5689.  114Bh    Canopus Co.
  5690.  114Ch    Annabooks
  5691.  114Dh    IC Corporation
  5692.  114Eh    Nikon Systems Inc
  5693.  114Fh    Digi International / Stargate
  5694.  1150h    Thinking Machines Corp.
  5695.  1151h    JAE Electronics Inc.
  5696.  1152h    Megatek
  5697.  1153h    Land Win Electronic Corp.
  5698.  1154h    Melco Inc.
  5699.  1155h    Pine Technology Ltd.
  5700.  1156h    Periscope Engineering
  5701.  1157h    Avsys Corporation
  5702.  1158h    Voarx R&D Inc.
  5703.  1159h    MuTech
  5704.  115Ah    Harleguin Ltd.
  5705.  115Bh    Parallax Graphics
  5706.  115Ch    ???
  5707.  115Dh    Xircom
  5708.  115Eh    Peer Protocols Inc.
  5709.  115Fh    ???
  5710.  1160h    Megasoft Inc.
  5711.  1161h    PFU Ltd.
  5712.  1162h    OA Laboratory Co Ltd.
  5713.  1163h    ???
  5714.  1164h    Advanced Peripherals Tech
  5715.  1165h    Imagraph Corporation
  5716.  1166h    Pequr Technology Inc.
  5717.  1167h    Mutoh Industries, Inc.
  5718.  1168h    Thine Electronics Inc
  5719.  1169h    ???
  5720.  116Ah    Polaris Communications
  5721.  116Bh    Connectware Inc
  5722.  116Ch    ???
  5723.  116Dh    ???
  5724.  116Eh    ???
  5725.  116Fh    Workstation Technology
  5726.  1170h    Inventec Corporation
  5727.  1171h    Loughborough Sound Images
  5728.  1172h    Altera Corporation
  5729.  1173h    Adobe Systems
  5730.  1174h    Bridgeport Machines
  5731.  1175h    Mitron Computer Inc.
  5732.  1176h    SBE
  5733.  1177h    Silicon Engineering
  5734.  1178h    Alfa Inc
  5735.  1179h    Toshiba America Info Systems
  5736.  117Ah    A-Trend Technology
  5737.  117Bh    ???
  5738.  117Ch    Atto Technology
  5739.  117Dh    ???
  5740.  117Eh    T/R Systems
  5741.  117Fh    ???
  5742.  1180h    Ricoh Co Ltd
  5743.  1181h    Telmatics International
  5744.  1182h    ???
  5745.  1183h    Fujikura Ltd
  5746.  1184h    Forks Inc
  5747.  1185h    Dataworld
  5748.  1186h    D-Link System Inc
  5749.  1187h    Advanced Technology Laboratories
  5750.  1188h    Shima Seiki Manufacturing Ltd.
  5751.  1189h    Matsushita Electronics
  5752.  118Ah    Hilevel Technology
  5753.  118Bh    ???
  5754.  118Ch    Corollary Inc
  5755.  118Dh    BitFlow Inc
  5756.  118Eh    Hermstedt GmbH
  5757.  118Fh    ???
  5758.  1190h    ???
  5759.  1191h    Artop Electric
  5760.  1192h    Densan Co. Ltd
  5761.  1193h    Zeitnet Inc.
  5762.  1194h    Toucan Technology
  5763.  1195h    Ratoc System Inc
  5764.  1196h    Hytec Electronics Ltd
  5765.  1197h    Gage Applied Sciences Inc.
  5766.  1198h    Lambda Systems Inc
  5767.  1199h    Digital Communications Associates Inc,
  5768.  119Ah    Mind Share Inc.
  5769.  119Bh    Omega Micro Inc.
  5770.  119Ch    Information Technology Inst.
  5771.  119Dh    Bug Sapporo Japan
  5772.  119Eh    Fujitsu
  5773.  119Fh    Bull Hn Information Systems
  5774.  11A0h    Convex Computer Corporation
  5775.  11A1h    Hamamatsu Photonics K.K.
  5776.  11A2h    Sierra Research and Technology
  5777.  11A4h    Barco
  5778.  11A5h    MicroUnity Systems Engineering, Inc.
  5779.  11A6h    Pure Data
  5780.  11A7h    Power Computing Corp.
  5781.  11A9h    InnoSys Inc.
  5782.  11AAh    Actel
  5783.  11ABh    Galileo Technology Ltd.
  5784.  11ACh    Canon Information Systems
  5785.  11ADh    Lite-On Communications Inc
  5786.  11AEh    Scitex Corporation Ltd
  5787.  11AFh    Pro-Log Corporation
  5788.  11B0h    V3 Semiconductor Inc.
  5789.  11B1h    Apricot Computers
  5790.  11B2h    Eastman Kodak
  5791.  11B3h    Barr Systems Inc.
  5792.  11B4h    Leitch Technology International
  5793.  11B5h    Radstone Technology Plc
  5794.  11B6h    United Video Corp
  5795.  11B7h    Motorola
  5796.  11B8h    Xpoint Technologies Inc
  5797.  11B9h    Pathlight Technology Inc.
  5798.  11BAh    Videotron Corp
  5799.  11BBh    Pyramid Technology
  5800.  11BCh    Network Peripherals Inc
  5801.  11BDh    Pinnacle Systems Inc.
  5802.  11BEh    International Microcircuits Inc
  5803.  11C3h    NEC Corporation
  5804.  11C4h    Document Technologies Ind.
  5805.  11C5h    Shiva Corporatin
  5806.  11C7h    D.C.M. Data Systems
  5807.  11C8h    Dolphin Interconnect Solutions
  5808.  11C9h    MAGMA
  5809.  11CAh    LSI Systems Inc
  5810.  11CBh    Specialix Research Ltd.
  5811.  11CCh    Michels & Kleberhoff Computer GmbH
  5812.  11CDh    HAL Computer Systems Inc.
  5813.  11DEh    Zoran Corporation
  5814.  11F8h    PMC-Sierra Inc.
  5815.  120Eh    Cyclades
  5816.  1220h    Ariel Corporation
  5817.  122Dh    Aztech Systems Ltd
  5818.  1239h    The 3DO Company
  5819.  124Dh    Stallion Technologies
  5820.  1254h    Linear Systems Ltd.
  5821.  125Ch    Aurora Technologies, Inc.
  5822.  1275h    Network Appliance
  5823.  127Ah    Rockwell Semiconductor Systems
  5824.  1296h    Kofax Image Products
  5825.  12C5h    Picture Elements, Inc.
  5826.  1C1Ch    Symphony
  5827.  1DE1h    TekRAM
  5828.  3D3Dh    3DLabs
  5829.  4005h    Avance Logic, Inc.
  5830.  4B10h    Buslogic Inc.
  5831.  5333h    S3 (see also #3307)
  5832.  5700h    Netpower
  5833.  6374h    c't Magazin fuer Computertechnik
  5834.  8008h    Quanc?m Electronic GmbH
  5835.  8086h    Intel (see also #3308)
  5836.  8800h    Trigem Computer
  5837.  8E0Eh    Computone Corporation
  5838.  9004h    Adaptec (see #3446)
  5839.  907Fh    Atronics
  5840.  EDD8h    Ark Logic Inc
  5841. SeeAlso: #0628
  5842.  
  5843. (Table 3444)
  5844. Values for ATI PCI device code:
  5845.  4158h    68800AX (Mach32)
  5846.  4354h    215CT222
  5847.  4358h    210888CX
  5848.  4758h    210888GX (Mach64)
  5849. SeeAlso: #0629
  5850.  
  5851. (Table 3442)
  5852. Values for DEC PCI device code:
  5853.  0001h    DEC BRD
  5854.  0002h    Tulip
  5855.  0009h    Tulip Fast
  5856.  000Fh    FDDI
  5857.  0014h    Tulip Plus
  5858. SeeAlso: #0629
  5859.  
  5860. (Table 3440)
  5861. Values for Cirrus Logic PCI device code:
  5862.  00A0h    Cirrus 5430
  5863.  00A4h    Cirrus 5434-4
  5864.  00A8h    Cirrus 5434-8
  5865.  1100h    Cirrus 6729
  5866.  1200h    Cirrus 7542
  5867. SeeAlso: #0629
  5868.  
  5869. (Table 3439)
  5870. Values for Advanced Micro Devices PCI device code:
  5871.  2000h    Am79C970 (Lance), Am79C971 (PCnet-FAST, PCI revision ID is 2xh)
  5872.  2020h    Am53c974 SCSI
  5873. SeeAlso: #0629
  5874.  
  5875. (Table 3441)
  5876. Values for Trident PCI device code:
  5877.  9420h    Trident 9420
  5878.  9440h    Trident 9440
  5879. SeeAlso: #0629
  5880.  
  5881. (Table 3445)
  5882. Values for OPTi PCI device code:
  5883.  C557h    82C557
  5884.  C558h    82C558
  5885.  C621h    82C621
  5886.  C822h    82C822
  5887. SeeAlso: #0629
  5888.  
  5889. (Table 3443)
  5890. Values for Tseng Labs PCI device code:
  5891.  3202h    ET4000/W32p-2
  5892.  3205h    ET4000/W32p-B
  5893.  3206h    ET4000/W32p-C
  5894.  3207h    ET4000/W32p-D
  5895. SeeAlso: #0629
  5896.  
  5897. (Table 3307)
  5898. Values for S3 PCI device code:
  5899.  8811h    Trio64V+
  5900.  8880h    S3 868
  5901.  88B0h    S3 928
  5902.  88C0h    S3 864-1
  5903.  88C1h    S3 864-2
  5904.  88D0h    S3 964-1
  5905.  88D1h    S3 964-2
  5906.  88F0h    S3 968
  5907. SeeAlso: #0629,#3308
  5908.  
  5909. (Table 3308)
  5910. Values for Intel PCI device code:
  5911.  0122h    82437FX (typo in docs??? 122?h instead?)
  5912.  0482h    82375 EISA
  5913.  0483h    82424 Cache Controller
  5914.  0484h    82378/82379 Bus Interface (Mercury/Saturn/Neptune chipsets) (see #0642)
  5915.  0486h    82425EX/82430
  5916.  04A3h    82434 (Neptune) (see #0640)
  5917.  1223h    Intel 7116
  5918.  1227h    82865
  5919.  122Dh    82437 (Triton)
  5920.  122Eh    82371FB ISA Bridge (Triton)
  5921.  1230h    82338 IDE controller / 82371FB IDE function (Triton)
  5922.  1234h    82371MX
  5923.  1235h    82437MX
  5924.  1237h    82441FX (see #3424)
  5925.  1250h    82439HX (430HX chipset) (see #3407)
  5926.  7000h    82371SB ISA Bridge (see #3410)
  5927.  7010h    82371SB IDE controller (see #3411)
  5928.  7020h    82371SB (see #3414)
  5929.  7030h    82437VX (430VX chipset) (see #3392)
  5930.  84C4h    Pentium Pro CPU
  5931. SeeAlso: #0629,#3307
  5932.  
  5933. (Table 3446)
  5934. Values for Adaptec PCI device code:
  5935.  5078h    Adaptec 7850
  5936.  7078h    Adaptec 294x
  5937.  7178h    Adaptec 2940
  5938.  7278h    Adaptec 7872
  5939. SeeAlso: #0629
  5940.  
  5941. Bitfields for PCI Configuration Command Register:
  5942. Bit(s)    Description    (Table 0630)
  5943.  0    I/O access enabled
  5944.  1    memory access enabled
  5945.  2    bus master enable
  5946.  3    special cycle recognition enabled
  5947.  4    memory write and invalidate enabled
  5948.  5    VGA palette snoop enabled
  5949.  6    parity error response enabled
  5950.  7    wait cycles enabled
  5951.  8    system error (SERR# line) enabled
  5952.  9    fast back-to-back transactions enabled
  5953.  15-10    reserved
  5954. SeeAlso: #0628,#0631
  5955.  
  5956. Format of PCI Configuration Status Register:
  5957. Bit(s)    Description    (Table 0631)
  5958.  3-0    reserved (0)
  5959.  4    new capabilities list is present (first entry pointed at by byte at
  5960.       34h or 14h)
  5961.  5    capable of running at 66 MHz
  5962.  6    UDF supported
  5963.  7    capable of fast back-to-back transactions
  5964.  8    data parity error reported
  5965.  10-9    device select timing
  5966.     00 fast
  5967.     01 medium
  5968.     10 slow
  5969.     11 reserved
  5970.  11    signaled target abort
  5971.  12    received target abort
  5972.  13    received master abort
  5973.  14    signaled system error (device is asserting SERR# line)
  5974.  15    detected parity error (set even if parity error reporting is disabled)
  5975. Note:    bits 12 and 13 are cleared by writing a 1 into the corresponding bit
  5976. SeeAlso: #0628,#0630
  5977.  
  5978. Bitfields for PCI Configuration Built-In Self-Test register:
  5979. Bit(s)    Description    (Table 0632)
  5980.  3-0    completion code (0000 = successful)
  5981.  5-4    reserved
  5982.  6    start BIST (set to one to start, cleared automatically on completion)
  5983.  7    BIST-capable
  5984. Notes:    this register is hardwired to 00h if no BIST capability
  5985.     software should timeout the BIST after two seconds
  5986. SeeAlso: #0628
  5987.  
  5988. Bitfields for PCI Configuration Base Address:
  5989. Bit(s)    Description    (Table 0633)
  5990.  0    address type (0 = memory space, 1 = I/O space)
  5991. ---memory address---
  5992.  2-1    address type
  5993.     00 anywhere in first 4GB
  5994.     01 below 1MB
  5995.     10 anywhere in 64-bit address space
  5996.     11 reserved
  5997.  3    prefetchable
  5998.  31-4    bits 31-4 of base memory address if addressable in first 1MB or 4GB
  5999.  63-4    bits 63-4 of base memory address if addressable in 64-bit memory
  6000.     (bits 63-32 are stored in the following base address DWORD)
  6001. ---I/O address---
  6002.  1    reserved
  6003.  31-2    bits 31-2 of base I/O port
  6004. SeeAlso: #0628,#3330
  6005.  
  6006. Bitfields for PCI Configuration Expansion ROM Address:
  6007. Bit(s)    Description    (Table 0634)
  6008.  0    address decode enable (ROM address is valid)
  6009.  10-1    reserved
  6010.  31-11    bits 31-11 of ROM's starting physical address
  6011. SeeAlso: #0628
  6012.  
  6013. Format of PCI Capabilities List:
  6014. Offset    Size    Description    (Table 3325)
  6015.  00h    BYTE    capability identifier
  6016.         01h PCI Power Managment
  6017.  01h    BYTE    offset of next item (within configuration space) or 00h
  6018.       N    BYTEs    varies by capability type
  6019. ---PCI Power Management---
  6020.  02h    WORD    power managment capabilities (see #3326) (read-only)
  6021.  04h    WORD    power managment capabilities status register (see #3327)
  6022.  06h    BYTE    PMCSR bridge support extensions (see #3328)
  6023.  07h    BYTE    (optional) read-only data register (see #3329)
  6024. Note:    this information is from the v0.93 draft of the specification and is
  6025.       subject to change
  6026. SeeAlso: #0628,#0631
  6027.  
  6028. Bitfields for PCI Power Management Capabilities:
  6029. Bit(s)    Description    (Table 3326)
  6030.  15    reserved (0)
  6031.  14-12    PME# support
  6032.     bit 12: PME# can be asserted from power state D0
  6033.     bit 13: PME# can be asserted from power state D1
  6034.     bit 14: PME# can be asserted from power state D2
  6035.  11    reserved (0)
  6036.  10    D2 power state supported
  6037.  9    D1 power state supported
  6038.  8    full-speed clock is required in state D0 for proper operation
  6039.     (if clear, device may be run at reduced clock except when actually
  6040.       being accessed)
  6041.  7-6    dynamic clock control support
  6042.     00 not bridge, no dynamic clock control, or secondary bus' clock is
  6043.           is tied to primary bus' clock
  6044.     01 bridge is capable of dynamic clock control
  6045.     10 reserved
  6046.     11 secondary bus has independent clock, but dynamic clock not supported
  6047.  5    device-specific initialization is required
  6048.  4-3    reserved (0)
  6049.  2-0    specification version
  6050.     001 = v1.0; four bytes of power management registers
  6051. Note:    this information is from the v0.93 draft of the specification and is
  6052.       subject to change
  6053. SeeAlso: #3325,#3327,#3328
  6054.  
  6055. Bitfields for PCI Power Management Capabilities Status Register:
  6056. Bit(s)    Description    (Table 3327)
  6057.  15    PME status: if set, PME# is (or would be) asserted
  6058.     writing a 1 to this bit clears it
  6059.  14-13    (read-only) scale factor to apply to contents of Data register
  6060.     00 unknown (or unimplemented data)
  6061.     01 x0.1
  6062.     10 x0.01
  6063.     11 x0.001
  6064.  12-9    (read-write) data select (see #3329)
  6065.  8    (read-write) enable PME# assertion
  6066.  7-5    reserved (0)
  6067.  4    (read-write) enable dynamic data reporting
  6068.     when set, PME# is asserted whenever the value in the Data register
  6069.       changes significantly
  6070.  3-2    reserved (0)
  6071.  1-0    (read-write) current power state
  6072.     00 = D0
  6073.     ...
  6074.     11 = D3
  6075. Note:    this information is from the v0.93 draft of the specification and is
  6076.       subject to change
  6077. SeeAlso: #3325,#3326,#3328
  6078.  
  6079. Bitfields for PCI Power Management PMCSR bridge support extension:
  6080. Bit(s)    Description    (Table 3328)
  6081.  7    (read-only) Bus Power Control Enable
  6082.  6    (read-only) Bus Power State B3 supported
  6083.  5    (read-only) Bus Power State B2 supported
  6084.  4    dynamic clock control enable
  6085.  3-0    reserved (0)
  6086. Note:    this information is from the v0.93 draft of the specification and is
  6087.       subject to change
  6088. SeeAlso: #3325,#3326,#3327
  6089.  
  6090. (Table 3329)
  6091. Values for PCI Power Management Data Select:
  6092.  00h    D0-state power consumed in watts (+20%/-10%)
  6093.  01h    D1-state power consumed in watts (+20%/-10%)
  6094.  02h    D2-state power consumed in watts (+20%/-10%)
  6095.  03h    D3-state power consumed in watts (+20%/-10%)
  6096.  04h    D0-state power dissipated into chassis in watts
  6097.  05h    D1-state power dissipated into chassis in watts
  6098.  06h    D2-state power dissipated into chassis in watts
  6099.  07h    D3-state power dissipated into chassis in watts
  6100.  08h-0Fh reserved
  6101. SeeAlso: #3327
  6102.  
  6103. Bitfields for PCI Configuration CardBus CIS Pointer:
  6104. Bit(s)    Description    (Table 0635)
  6105.  2-0    address space
  6106.     000 in device's device-specific configuration space
  6107.     001 in memory pointed to by base address register 0
  6108.     ...
  6109.     110 in memory pointed to by base address register 5
  6110.     111 in device's expansion ROM
  6111.  27-3    offset within address space defined by bits 2-0
  6112.  31-28    ROM image number
  6113. SeeAlso: #0628
  6114.  
  6115. Format of CardBus Socket/ExCA socket interface register space:
  6116. Offset    Size    Description    (Table 3309)
  6117.  00h    DWORD    Socket Event Register (see #3311)
  6118.  04h    DWORD    Socket Mask Register (see #3312)
  6119.  08h    DWORD    Socket Present State Register (see #3313)
  6120.  0Ch    DWORD    Socket Force Event Register (see #3314)
  6121.  10h    DWORD    Socket Control Register (see #3315)
  6122.  14h  3 DWORDs    reserved
  6123.  20h    DWORD    Socket Power Management Register
  6124.  90h    BYTE    (TI PCI1130) Retry Status Register
  6125.  91h    BYTE    (TI PCI1130) Card Control Register (see #3316)
  6126.  92h    BYTE    (TI PCI1130) Device Control Register (see #3317)
  6127.  93h    BYTE    (TI PCI1130) Buffer Control Register
  6128. 800h 64+ BYTEs    ExCa Socket Interface Registers (see #3310)
  6129.  
  6130. Format of ExCa memory-mapped registers:
  6131. Offset    Size    Description    (Table 3310)
  6132.  00h    BYTE    identification and revision register
  6133.  01h    BYTE    interface status register
  6134.  02h    BYTE    power control register
  6135.  03h    BYTE    interrupt and general control
  6136.  04h    BYTE    card status change
  6137.  05h    BYTE    card status change interrupt configuration
  6138.  06h    BYTE    address window enable
  6139.  07h    BYTE    I/O window control register
  6140.  08h    WORD    I/O window 0 start address
  6141.  0Ah    WORD    I/O window 0 end address
  6142.  0Ch    WORD    I/O window 1 start address
  6143.  0Eh    WORD    I/O window 1 end address
  6144.  10h    WORD    memory window 0 start address
  6145.  12h    WORD    memory window 0 end address
  6146.  14h    WORD    memory window 0 offset address
  6147.  16h  2 BYTEs    user-defined
  6148.  18h    WORD    memory window 1 start address
  6149.  1Ah    WORD    memory window 1 end address
  6150.  1Ch    WORD    memory window 1 offset address
  6151.  1Eh    BYTE    user-defined
  6152.  1Fh    BYTE    reserved
  6153.  20h    WORD    memory window 2 start address
  6154.  22h    WORD    memory window 2 end address
  6155.  24h    WORD    memory window 2 offset address
  6156.  26h  2 BYTEs    user-defined
  6157.  28h    WORD    memory window 3 start address
  6158.  2Ah    WORD    memory window 3 end address
  6159.  2Ch    WORD    memory window 3 offset address
  6160.  2Eh  2 BYTEs    user-defined
  6161.  30h    WORD    memory window 4 start address
  6162.  32h    WORD    memory window 4 end address
  6163.  34h    WORD    memory window 4 offset address
  6164.  36h 10 BYTEs    user-defined
  6165. ---optional---
  6166.  40h    BYTE    memory window 0 start address high byte
  6167.  41h    BYTE    memory window 1 start address high byte
  6168.  42h    BYTE    memory window 2 start address high byte
  6169.  43h    BYTE    memory window 3 start address high byte
  6170.  44h    BYTE    memory window 4 start address high byte
  6171.  45h-7FFh    user-defined
  6172. SeeAlso: #3309
  6173.  
  6174. Bitfields for CardBus Socket Event Register:
  6175. Bit(s)    Description    (Table 3311)
  6176.  0    CSTSCHG pin asserted (status change)
  6177.  1    CCD1# (card detect 1) changed state
  6178.  2    CCD2# (card detect 2) changed state
  6179.  3    interface power cycle completed
  6180. 31-4    reserved (0)
  6181. Note:    the bits in this register are set by the bridge, and cleared by writing
  6182.       a one into the bits one wishes to clear
  6183. SeeAlso: #3309,#3312,#3314
  6184.  
  6185. Bitfields for CardBus Socket Event Mask Register:
  6186. Bit(s)    Description    (Table 3312)
  6187.  0    write-protect (enable status-change interrupt on WriteProtect switch)
  6188.  1    ready mask (allow status-change interrupt on Ready line change)
  6189.  3-2    battery condition (allow status-change int on battery-condition change)
  6190.  4    general wakeup enabled
  6191.  5    binary audio mode enabled on CAUDIO pin
  6192.  6    Pulse Width Modulation enabled on CAUDIO pin
  6193.     (CAUDIO state undefined if both bits 5 and 6 set)
  6194.  13-7    reserved (0)
  6195.  14    Wakeup mask (enable wakeup events via status-change pin)
  6196.  15    enable card interrupts via CINT# pin and wakeup events
  6197.  31-16    reserved
  6198. SeeAlso: #3309,#3311,#3313
  6199.  
  6200. Bitfields for CardBus Socket Present State Register:
  6201. Bit(s)    Description    (Table 3313)
  6202.  0    CSTSCHG pin asserted (status change)
  6203.  1    CCD1# (card detect 1) changed state
  6204.  2    CCD2# (card detect 2) changed state
  6205.  3    interface power cycle completed
  6206.  4    16-bit PC card inserted
  6207.  5    CardBus card inserted
  6208.  6    card's interrupt pin asserted
  6209.  7    card inserted but type can not be determined
  6210.  8    data may have been lost due to abrupt card removal
  6211.  9    attempted to apply Vcc voltage not supported by the card
  6212.  10    card can accept Vcc = 5.0 volts
  6213.  11    card can accept Vcc = 3.3 volts
  6214.  12    card can accept Vcc = X.X volts
  6215.  13    card can accept Vcc = Y.Y volts
  6216.  27-14    reserved (0)
  6217.  28    socket can accept Vcc = 5.0 volts
  6218.  29    socket can accept Vcc = 3.3 volts
  6219.  30    socket can accept Vcc = X.X volts
  6220.  31    socket can accept Vcc = Y.Y volts
  6221. Note:    bits 0-3 may be cleared by writing a 1 into the respective bits
  6222. SeeAlso: #3309,#3311,#3312,#3315
  6223.  
  6224. Bitfields for CardBus Socket Force Event Register:
  6225. Bit(s)    Description    (Table 3314)
  6226.  0    write-protect
  6227.  1    ready
  6228.  2    battery voltage detect 2
  6229.  3    battery voltage detect 1
  6230.  4    general wakeup
  6231.  14-5    reserved (0)
  6232.  15    enable card interrupts via CINT# pin
  6233.  31-16    reserved
  6234. Note:    this register can simulate events by forcing the values of some of the
  6235.       bits in the Event Mask Register; any bit of this register which is
  6236.       set to 1 forces the corresponding bit in the Mask Register to 1,
  6237.       while bits set to 0 leave the corresponding bit unchanged
  6238. SeeAlso: #3309,#3311,#3315
  6239.  
  6240. Bitfields for CardBus Socket Control Register:
  6241. Bit(s)    Description    (Table 3315)
  6242.  2-0    Vpp control
  6243.     000 power off
  6244.     001 12.0 Volts
  6245.     010 5.0 Volts
  6246.     011 3.3 Volts
  6247.     100 reserved (X.X Volts)
  6248.     101 reserved (Y.Y Volts)
  6249.     110 reserved
  6250.     111 reserved
  6251.  3    reserved (0)
  6252.  6-4    Vcc control (as for Vpp, but 12.0V not supported)
  6253.  31-7    reserved (0)
  6254. SeeAlso: #3309,#3312,#3314
  6255.  
  6256. Bitfields for TI PCI1130 Card Control Register:
  6257. Bit(s)    Description    (Table 3316)
  6258.  0    interrupt pending
  6259.  1    speaker output enabled
  6260.  2    reserved
  6261.  3    enable status-change interrupt routing (to INTA# for socket A, INTB#
  6262.       for socket B)
  6263.  4    function interrupt routed to corresponding PCI interrupt pin
  6264.  5    PCI interrupts enabled
  6265.  6    ZOOM video mode enabled
  6266.  7    Ring Indicator enabled on IRQ15/RI_OUT pin
  6267. SeeAlso: #3309,#3317
  6268.  
  6269. Bitfields for TI PCI1130 Device Control Register:
  6270. Bit(s)    Description    (Table 3317)
  6271.  0    reserved (0)
  6272.  2-1    interrupt mode enable
  6273.     00 no interrupt
  6274.     01 ISA mode (direct IRQ routing)
  6275.     10 serialized interrupt mode
  6276.     11 reserved
  6277.  4-3    reserved
  6278.  5    3volt Socket Capable force bit
  6279.  6    5volt Socket Capable force bit
  6280.  7    reserved
  6281. SeeAlso: #3309,#3316
  6282.  
  6283. Bitfields for PCI Configuration I/O base and limit:
  6284. Bit(s)    Description    (Table 0636)
  6285.  3-0    (read-only) address decoding type
  6286.     0000 16-bit
  6287.     0001 32-bit
  6288.     other reserved
  6289.  7-4    bits 15-12 of I/O address range
  6290. SeeAlso: #0628,#0637
  6291.  
  6292. Bitfields for PCI Configuration memory base and limit:
  6293. Bit(s)    Description    (Table 0637)
  6294.  3-0    address decode type
  6295.     0000 32-bit address decoder
  6296.     0001 64-bit address decoder
  6297.     other reserved
  6298.  15-4    bits 31-20 of memory address range
  6299. SeeAlso: #0628,#0636
  6300.  
  6301. Format of PCI Configuration Data for VLSI VL82C591 Host/PCI bridge:
  6302. Offset    Size    Description    (Table 0638)
  6303.  00h 64 BYTEs    header (see #0628)
  6304.         (device ID 0005h)
  6305.  40h    BYTE    bus number
  6306.  41h    BYTE    subordinate bus number
  6307.  42h    WORD    reserved
  6308.  44h  4 DWORDs    reserved
  6309.  54h  2 BYTEs    device-specific configuration registers
  6310.  56h    WORD    reserved
  6311.  58h  2 BYTEs    device-specific configuration registers
  6312.  5Ah    WORD    reserved
  6313.  5Ch  5 BYTEs    device-specific configuration registers
  6314.     ...
  6315.  FFh    BYTE    device-specific configuration register
  6316. SeeAlso: #0628,#0629,#0639
  6317.  
  6318. Format of PCI Configuration data for VLSI VL82C593 PCI/ISA bridge:
  6319. Offset    Size    Description    (Table 0639)
  6320.  00h 64 BYTEs    header (see #0628)
  6321.         (device ID 0006h)
  6322.  40h  4 DWORDs    reserved
  6323.  50h 11 BYTEs    device-specific configuration registers
  6324.  5Bh    BYTE    reserved
  6325.  5Ch 25 BYTEs    device-specific configuration registers
  6326.  75h 138 BYTEs    reserved
  6327.  FFh    BYTE    device-specific configuration register
  6328. SeeAlso: #0628,#0638
  6329.  
  6330. Format of PCI Configuration data for Intel 82434 Cache/DRAM Controller:
  6331. Offset    Size    Description    (Table 0640)
  6332.  00h 64 BYTEs    header (see #0628)
  6333.         (vendor ID 8086h, device ID 04A3h)
  6334.  40h 16 BYTEs    unused (hard-wired to 00h)
  6335.  50h    BYTE    secondary (L2) cache control???
  6336.         bit 0: ???
  6337.         bit 1: ???
  6338.         bit 2: enable L2 cache
  6339.  51h    BYTE    deturbo frequency control register
  6340.         when deturbo mode is selected (see PORT 0CF9h), the chipset
  6341.           places a hold on the memory bus for a fraction of the
  6342.           time inversely proportional to the value in this register
  6343.           (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  6344.           (only bits 7-6 writable, bits 5-0 hardwired to 0)
  6345.  52h    BYTE    ???
  6346.         bits 6-7: ???
  6347.         bit 1: ???
  6348.         bit 0: ???
  6349.  53h    BYTE    ???
  6350.  54h    BYTE    ???
  6351.         bit 2: ???
  6352.  55h  2 BYTEs    ???
  6353.  57h    BYTE    DRAM Control???
  6354.         bit 3: ???
  6355.  58h    BYTE    DRAM Timing???
  6356.         bit 0:
  6357.  59h  7    BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  6358.  60h  6    BYTEs    DRAM Row Boundary registers 0-5
  6359.         each register N indicates the amount of cumulative amount of
  6360.           memory in SIMM banks 0-N, in multiples of 1M; offset 65h
  6361.           contains the total amount of memory installed in the system
  6362.  66h  2 BYTEs    ??? (set to same value as 65h)
  6363.  68h    BYTE    DRAM Row Type???
  6364.  69h  3 BYTEs    ???
  6365.  6Ch    DWORD    unused??? (apparently hardwired to 00000000h)
  6366.  70h    BYTE    ???
  6367.         bits 1-0: ???
  6368.  71h    BYTE    ???
  6369.         bit 3: ???
  6370.  72h    BYTE    System Management RAM control (see also #3404)
  6371.         bits 2-0: ???
  6372.         bit 5:    map SMM-mode memory (64K) into address space when bits
  6373.             2-0 = 010 (default 3000h:0000h; can be changed by
  6374.             first SMM event)
  6375.  73h  5 BYTEs    ???
  6376.  78h    WORD    ???
  6377.  7Ah  2 BYTEs    ???
  6378.  7Ch    DWORD    ???
  6379.         bit 13: byte merging enabled
  6380.  80h 128 BYTEs    unused???
  6381. Note:    the 82434 is part of the Intel Neptune chipset
  6382. SeeAlso: #0642,#0643
  6383.  
  6384. Format of PCI Configuration data for Intel 82424 Cache Controller:
  6385. Offset    Size    Description    (Table 0641)
  6386.  00h 64 BYTEs    header (see #0628)
  6387.         (vendor ID 8086h, device ID 0483h)
  6388.  40h    BYTE    bus number
  6389.  41h    BYTE    subordinate bus number
  6390.  42h    BYTE    disconnect timer
  6391.  50h    BYTE    host CPU selection
  6392.  51h    BYTE    deturbo frequency control
  6393.         when deturbo mode is selected (see PORT 0CF9h), the chipset
  6394.           places a hold on the memory bus for a fraction of the
  6395.           time inversely proportional to the value in this register
  6396.           (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  6397.  52h    BYTE    secondary cache control
  6398.  53h    BYTE    write buffer control
  6399.  54h    BYTE    PCI features control
  6400.  55h    BYTE    DRAM Operation Mode Select
  6401.  56h    BYTE    System Exception Handling
  6402.  57h    BYTE    SMM Control Register
  6403.  58h    BYTE    reserved
  6404.  59h  7    BYTEs    Programmable Attribute Map registers 0-6 (see also #3401)
  6405.  60h  4 BYTEs    DRAM Row Boundary registers 0-3
  6406.         each register N indicates amount of memory in rows 0-N (each
  6407.           row is 64 bits wide)
  6408.         boundary register 3 (offset 63h) contains the total system
  6409.           memory, which may not exceed 128M
  6410.  64h  4 BYTEs    unused???
  6411.  68h    WORD    Memory Hole-0
  6412.  6Ah    WORD    Memory Hole-1
  6413. Note:    the above field names are those given by EduWARE's PCI Configuration
  6414.       Manager v1.2
  6415. SeeAlso: #0640,#0643,#3392
  6416.  
  6417. Format of PCI Configuration data for Intel 82378 and 82379 ISA Bridges:
  6418. Offset    Size    Description    (Table 0642)
  6419.  00h 64 BYTEs    header (see #0628)
  6420.         (vendor ID 8086h, device ID 0484h)
  6421.         (revision ID:
  6422.             bits 7-4: reserved
  6423.             bits 3-0: revision
  6424.             0011 82378ZB A0-step
  6425.             1000 82379AB A0-step)
  6426.  40h    BYTE    PCI Control (see #3331)
  6427.  41h    BYTE    PCI Arbiter Control (see #3332)
  6428.  42h    BYTE    PCI Arbiter Priority Control (see #3333)
  6429.  43h    BYTE    (82378ZB) PCI Arbiter Priority Control Extension Register
  6430.         bit 0: bank 3 fixed priority mode select (see also #3333)
  6431.             =0 REQ2# has higher priority
  6432.             =1 REQ3# has higher priority
  6433.  44h    BYTE    MEMCS# Control (see #3334)
  6434.  45h    BYTE    MEMCS# Bottom of Hole (address bits 23-16)
  6435.  46h    BYTE    MEMCS# Top of Hole (address bits 23-16)
  6436.  47h    BYTE    MEMCS# Top of Memory (address bits 28-21 == size in 2M incr.)
  6437.  48h    BYTE    ISA Address Decoder Control (see #3335)
  6438.  49h    BYTE    ISA Address Decoder ROM Block Enable (see #3336)
  6439.  4Ah    BYTE    ISA Address Decoder Bottom of Hole (address bits 23-16)
  6440.  4Bh    BYTE    ISA Address Decoder Top of Hole (address bits 23-16)
  6441.  4Ch    BYTE    ISA Controller Recovery Time (see #0647)
  6442.  4Dh    BYTE    ISA Clock Divisor (see #3337)
  6443.  4Eh    BYTE    Utility Bus Chip Select Enable A (see #3338)
  6444.  4Fh    BYTE    Utility Bus Chip Select Enable B (see #3339)
  6445.  50h  4 BYTEs    reserved
  6446.  54h    BYTE    MEMCS# Attribute Register #1 (see #3340)
  6447.         attributes for 16K blocks from C0000h-CFFFFh
  6448.  55h    BYTE    MEMCS# Attribute Register #2 (see #3340)
  6449.         attributes for 16K blocks from D0000h-DFFFFh
  6450.  56h    BYTE    MEMCS# Attribute Register #3 (see #3340)
  6451.         attributes for 16K blocks from E0000h-EFFFFh
  6452.  57h    BYTE    (82378) Scatter/Gather Relocation Base Adress (see #3341)
  6453.         (82379AB) reserved
  6454.  58h  8 BYTEs    reserved
  6455.  60h    BYTE    (82378ZB) IRQ0# Route Control (see #3342)
  6456.  61h    BYTE    (82378ZB) IRQ1# Route Control (see #3342)
  6457.  62h    BYTE    (82378ZB) IRQ2# Route Control (see #3342)
  6458.  63h    BYTE    (82378ZB) IRQ3# Route Control (see #3342)
  6459.  64h 12 BYTEs    reserved
  6460.  70h    BYTE    (82378) reserved
  6461.         (82379AB, write-only) PIC/APIC Configuration Control
  6462.               (see #3343)
  6463.  71h    BYTE    (82378) reserved
  6464.         (82379AB, write-only) APIC Base Address Relocation
  6465.           (see #3344,MEM FEC00000h)
  6466.  72h 14 BYTEs    reserved
  6467.  80h    WORD    BIOS timer base address (see PORT 0078h)
  6468.         bits 15-2 are bits 15-2 of BIOS timer port address
  6469.         bit 1: reserved (0)
  6470.         bit 0: timer enabled (if disabled, other bits ignored)
  6471.  82h 30 BYTEs    unused???
  6472.  A0h    BYTE    SMI Control (see #3345)
  6473.  A1h    BYTE    reserved
  6474.  A2h    WORD    SMI Enable (see #3346)
  6475.  A4h    DWORD    System Event Enable (SEE) (see #3347)
  6476.  A8h    BYTE    Fast-Off Timer (in minutes)
  6477.  A9h    BYTE    reserved
  6478.  AAh    WORD    SMI Request (see #3348)
  6479.  ACh    BYTE    (82378ZB) Clock Throttle STPCLK# Low Timer
  6480.         duration of STPCLK# low period in 32 microsecond units
  6481.  ADh    BYTE    reserved
  6482.  AEh    BYTE    (82378ZB) Clock Throttle STPCLK# High Timer
  6483.         duration of STPCLK# high period in 32 microsecond units
  6484.  AFh 81 BYTEs    reserved
  6485. SeeAlso: #0640,#3410,PORT 040Ah"82378ZB"
  6486.  
  6487. Bitfields for Intel 82378/82379 PCI Control:
  6488. Bit(s)    Description    (Table 3331)
  6489.  7    reserved (0)
  6490.  6    DMA Reserved Page Register Aliasing Control
  6491.     =0 alias PORT 80h-8Fh to PORT 90h-9Fh
  6492.  5    Interrupt Acknowledge Enable
  6493.     =0 ignore INTA cycles on the PCI bus, but still allow 8259 register
  6494.       access and poll-mode functions
  6495.  4-3    Subtractive Decoding Sample Point
  6496.     00 slow sample point
  6497.     01 typical
  6498.     10 fast sample point
  6499.     11 reserved
  6500.  2    PCI Posted Write Buffer Enable
  6501.  1    ISA Master Line Buffer Configuration
  6502.     =0 single-transaction mode
  6503.     =1 eight-byte mode for ISA bus master transfers
  6504.  0    DMA Line Buffer Configuration
  6505.     =0 single-transaction mode
  6506.     =1 eight-byte mode
  6507. SeeAlso: #0642,#3332
  6508.  
  6509. Bitfields for Intel 82378/82379 PCI Arbiter Control:
  6510. Bit(s)    Description    (Table 3332)
  6511.  7-5    reserveed (0)
  6512.  4-3    Master Retry Timer
  6513.     00 disabled (retries never masked)
  6514.     01 retries unmasked after 16 PCICLKs
  6515.     10 retries unmasked after 32 PCICLKs
  6516.     11 retries unmasked after 64 PCICLKs
  6517.  2    Bus Park
  6518.     =1 park CPUREQ# on PCI bus when 82378 detects PCI bus idle
  6519.  1    Bus Lock
  6520.     =0 resource lock
  6521.     =1 Bus lock
  6522.  0    Guaranteed Access Time
  6523.     =1 ISA bus masters are guaranteed 2.5 microsecond CHRDY time-out
  6524. SeeAlso: #0642,#3331
  6525.  
  6526. Bitfields for Intel 82378/82379 PCI Arbiter Priority Control:
  6527. Bit(s)    Description    (Table 3333)
  6528.  7    bank 3 rotate control
  6529.  6    bank 2 rotate control
  6530.  5    bank 1 rotate control
  6531.  4    bank 0 rotate control
  6532.  3    bank 2 fixed priority mode select B
  6533.  2    bank 2 fixed priority mode select A
  6534.  1    bank 1 fixed priority mode select
  6535.  0    bank 0 fixed priority mode select
  6536. Note:    if both 'rotate' and 'fixed' bits are set for a given bank,
  6537.       that bank will be in rotating-priority mode
  6538. SeeAlso: #0642,#3332
  6539.  
  6540. Bitfields for Intel 82378/82379 MEMCS# Control Register:
  6541. Bit(s)    Description    (Table 3334)
  6542.  7-5    reserved (0)
  6543.  4    MEMCS# Master Enable
  6544.  3    write enable for 0F0000h-0FFFFFh
  6545.  2    read enable for 0F0000h-0FFFFFh
  6546.  1    write enable for 080000h-09FFFFh
  6547.  0    read enable for 080000h-09FFFFh
  6548. SeeAlso: #0642
  6549.  
  6550. Bitfields for Intel 82378/82379 ISA Address Decoder Control Register:
  6551. Bit(s)    Description    (Table 3335)
  6552.  7-4    ISA memory cycle forwarding to PCI
  6553.     0000-1111 = 1M-16M top of ISA memory; any accesses above programmed
  6554.           limit are forwarded to PCI bus
  6555.  3-0    ISA/DMA memory cycle to PCI bus enables
  6556.     bit 3: 896K-960K (E000h-EFFFh)
  6557.     bit 2: 640K-768K (A000h-BFFFh)
  6558.     bit 1: 512K-640K (8000h-9FFFh)
  6559.     bit 0: 0K-512K     (0000h-7FFFh)
  6560. SeeAlso: #0642,#3336
  6561.  
  6562. Bitfields for Intel 82378/82379 ISA Address Decoder ROM Block Enable:
  6563. Bit(s)    Description    (Table 3336)
  6564.  7    enable 880K-896K (EC00h-EFFFh)
  6565.  6    enable 864K-880K (E800h-EBFFh)
  6566.  5    enable 848K-864K (E400h-E7FFh)
  6567.  4    enable 832K-848K (E000h-E3FFh)
  6568.  3    enable 816K-832K (DC00h-DFFFh)
  6569.  2    enabel 800K-816K (D800h-DBFFh)
  6570.  1    enable 784K-800K (D400h-D7FFh)
  6571.  0    enable 768K-784K (D000h-D3FFh)
  6572. Note:    ISA accesses within any enabled ranges are forwarded to the PCI bus
  6573. SeeAlso: #0642,#3335
  6574.  
  6575. Bitfields for Intel 82378/82379 ISA Clock Divisor Register:
  6576. Bit(s)    Description    (Table 3337)
  6577.  7    reserved (0)
  6578.  6    enable positive decode of upper 64K BIOS at 000F0000h-000FFFFFh,
  6579.       FFEF0000h-FFEFFFFFh, and FFFF0000h-FFFFFFFFh
  6580.  5    coprocessor error enable
  6581.     =1 FERR# is driven onto IRQ13
  6582.  4    IRQ12/Mouse Function Enable
  6583.     =0 standard IRQ12
  6584.     =1 mouse
  6585.  3    RSTDRV enable
  6586.     =1 assert RSTDRV until this bit cleared (for use in changing ISA bus
  6587.       speed)
  6588.  2-0    PCICLK-to-ISA SYSCLK divisor
  6589.     000    4
  6590.     001    3
  6591.     other    reserved
  6592. SeeAlso: #0642,#3335
  6593.  
  6594. Bitfields for Intel 82378/82379 Utility Bus Chip Select A Register:
  6595. Bit(s)    Description    (Table 3338)
  6596.  7    extended BIOS enable (decode accesses to FFF80000h-FFFDFFFFh)
  6597.  6    lower BIOS enable (decode accesses to E0000h-EFFFFh,
  6598.       FFEE0000h-FFEEFFFFh, and FFFE0000h-FFFEFFFFh)
  6599.  5    (82378ZB) floppy disk primary/secondary address select
  6600.     =1 use secondary address range
  6601.  4    (82378ZB) IDE Decode enable
  6602.  3,2    floppy disk address locations enable
  6603.  1    keyboard controller address location enable
  6604.     enables I/O addresses 60h,62h,64h,66h (82378ZB) or 60h/64h (82379AB)
  6605.  0    RTC address location enabled
  6606.     =1 enable decode of I/O ports 70h-77h
  6607. SeeAlso: #0642,#0649,#3339
  6608.  
  6609. Bitfields for Intel 82378ZB/82379 Utility Bus Chip Select B Register:
  6610. Bit(s)    Description    (Table 3339)
  6611.  7    configuration RAM decode enable
  6612.     =1 permit write accesses to I/O port 0C00h and r/w to ports 08xxh
  6613.  6    enable PORT 0092h
  6614.  5-4    parallel port enable
  6615.     00 LPT1 (ports 03BCh-03BFh)
  6616.     01 LPT2 (ports 0378h-037Fh)
  6617.     10 LPT3 (ports 0278h-027Fh)
  6618.     11 disabled
  6619.  3-2    serial port B enable
  6620.     00 COM1 (03F8h-03FFh)
  6621.     01 COM2 (02F8h-02FFh)
  6622.     10 reserved
  6623.     11 port B disabled
  6624.  1-0    serial port A enable
  6625.     00 COM1 (03F8h-03FFh)
  6626.     01 COM2 (02F8h-02FFh)
  6627.     10 reserved
  6628.     11 port A disabled
  6629. Note:    if both serial ports are set to the same address, port B is disabled
  6630. SeeAlso: #0642,#3338,PORT 0092h
  6631.  
  6632. Bitfields for Intel 82378/82379 MEMCS# Attribute Register 1/2/3:
  6633. Bit(s)    Description    (Table 3340)
  6634.  7    write-enable xC000h-xFFFFh expansion ROM
  6635.  6    read-enable xC000h-xFFFFh expansion ROM
  6636.  5    write-enable x8000h-xBFFFh expansion ROM
  6637.  4    read-enable x8000h-xBFFFh expansion ROM
  6638.  3    write-enable x4000h-x7FFFh expansion ROM
  6639.  2    read-enable x4000h-x7FFFh expansion ROM
  6640.  1    write-enable x0000h-x3FFFh expansion ROM
  6641.  0    read-enable x0000h-x3FFFh expansion ROM
  6642. Note:    x = C/D/E depending on the attribute register
  6643. SeeAlso: #0642
  6644.  
  6645. Bitfields for Intel 82378ZB Scatter Gather Relocation Base Address:
  6646. Bit(s)    Description    (Table 3341)
  6647.  (no details in Intel documentation)
  6648. SeeAlso: #0642,#3340,#3342,PORT 040Ah"82378ZB"
  6649.  
  6650. Bitfields for Intel 82378/82379 PCI IRQ Route Control Register:
  6651. Bit(s)    Description    (Table 3342)
  6652.  7    disable IRQ routing
  6653.  6-4    reserved (0)
  6654.  3-0    ISA IRQ number to which to route the PCI IRQ
  6655. Note:    IRQs 0-2, 8, and 13 are reserved
  6656. SeeAlso: #0642,#3410
  6657.  
  6658. Bitfields for Intel 82379AB PIC/APIC Configuration Control Register:
  6659. Bit(s)    Description    (Table 3343)
  6660.  7-2    reserved
  6661.  1    SMI Routing Control
  6662.     =1 SMI via APIC
  6663.     =0 SMI via SMI# signal
  6664.  0    INT Routing Control
  6665.     =1 INT disabled (requires that APIC be enabled)
  6666.     =0 INT enabled
  6667. SeeAlso: #0642,#3344
  6668.  
  6669. Bitfields for Intel 82379AB/82371 APIC Base Address Relocation:
  6670. Bit(s)    Description    (Table 3344)
  6671.  7    reserved
  6672.  6    (82379AB) reserved
  6673.  6    (82371) A12 mask
  6674.     =1 ignore address bit 12 in APIC address
  6675.  5-0    bits 15-10 of APIC memory address (ORed with FEC00000h to form base
  6676.       address)
  6677. SeeAlso: #0642,#3410,#3343,MEM FEC00000h
  6678.  
  6679. Bitfields for Intel 82378/82379 SMI Control Register:
  6680. Bit(s)    Description    (Table 3345)
  6681.  7    reserved
  6682.  6    (82378) reserved
  6683.     (82379) require Stop Grant bus cycle before asserting STPCLK#
  6684.  5-4    reserved
  6685.  3    Fast-Off Timer freeze
  6686.  2    STPCLK# scaling enable
  6687.     =1 enable Clock Throttle bytes in PCI configuration space
  6688.  1    STPCLK# signal enable
  6689.     =1 assert STPCLK# on read from PORT 00B2h
  6690.  0    SMI# Gate
  6691.     =1 enable SMI# on system management interrupt
  6692. Notes:    bit 1 is cleared either with an explicit write of 0 here, or by any
  6693.       write to PORT 00B2h
  6694.     bit 0 does not affect the recording of SMI events, so a pending SMI
  6695.       will cause an immediate SMI# when the bit is set
  6696. SeeAlso: #0642,#3346,#3347,#3421,PORT 00B2h
  6697.  
  6698. Bitfields for Intel 82371/82378/82379 SMI Enable Register:
  6699. Bit(s)    Description    (Table 3346)
  6700.  15-9    reserved
  6701.  8    (82371SB only) Legacy USB SMI enable
  6702.  7    APMC Write SMI enable
  6703.     =1 generate SMI on write to PORT 00B2h
  6704.  6    EXTSMI# SMI enable
  6705.  5    Fast-Off Timer SMI enable
  6706.  4    IRQ12 (PS/2 mouse) SMI enable
  6707.  3    IRQ8 (RTC alarm) SMI enable
  6708.  2    IRQ4 (COM1/COM3) SMI enable
  6709.  1    IRQ3 (COM2/COM4) SMI enable
  6710.  0    IRQ1 (keyboard) SMI enable
  6711. SeeAlso: #0642,#3345,#3347,#3410,PORT 00B2h
  6712.  
  6713. Bitfields for Intel 82371/82378/82379 System Event Enable Register:
  6714. Bit(s)    Description    (Table 3347)
  6715.  31    Fast-Off SMI enable (system and break events)
  6716.  30    (82379 only) Fast-Off Interrupt Enable (break events only)
  6717.  30    (82371 only) INTR enable (break events only)
  6718.  29    Fast-Off NMI enable (system and break events)
  6719.  28    (82371SB only) Fast-Off APIC enable (break events only)
  6720.  27    (82379 only) Fast-Off COM enable (system events only)
  6721.  26    (82379 only) Fast-Off LPT enable (system events only)
  6722.  25    (82379 only) Fast-Off Drive enable (system events only)
  6723.  24    (82379 only) Fast-Off DMA enable (system events only)
  6724.  23-16    reserved
  6725.  15-3    Fast-Off IRQ (15-3) enable (system and break events)
  6726.  2    reserved
  6727.  1-0    Fast-Off IRQ (1-0) enable (system and break events)
  6728. Note:    any enabled system event restarts the Fast-Off Timer, thus preventing
  6729.       a Fast-Off powerdown; any enabled break event awakens the system from
  6730.       powerdown
  6731. SeeAlso: #0642,#3345,#3346,#3348,#3410
  6732.  
  6733. Bitfields for Intel 82371/82378/82379 SMI Request Register:
  6734. Bit(s)    Description    (Table 3348)
  6735.  15-9    reserved
  6736.  8    (82371SB only) Legacy USB SMI status
  6737.  7    APM SMI Status (write to PORT 00B2h triggered SMI)
  6738.  6    EXTSMI# SMI Status (EXTSMI# line triggered SMI)
  6739.  5    Fast-Off Timer expired
  6740.  4    IRQ12 triggered SMI
  6741.  3    IRQ8 triggered SMI
  6742.  2    IRQ4 triggered SMI
  6743.  1    IRQ3 triggered SMI
  6744.  0    IRQ1 triggered SMI
  6745. Note:    software must explicitly reset the appropriate bits
  6746. SeeAlso: #0642,#3347,#3410
  6747.  
  6748. Format of PCI Configuration data for Intel 82425EX PSC:
  6749. Offset    Size    Description    (Table 0643)
  6750.  00h 64 BYTEs    header (see #0628)
  6751.         (vendor ID 8086h, device ID 0486h)
  6752.  40h    BYTE    PCI control register (see #0644)
  6753.  41h  3 BYTEs    ???
  6754.  44h    BYTE    host device control register (see #0645)
  6755.  45h  3 BYTEs    ???
  6756.  48h    WORD    PCI local-bus IDE control register (see #0646)
  6757.  4Ah  2 BYTEs    ???
  6758.  4Ch    BYTE    ISA I/O recovery timer register (see #0647)
  6759.  4Dh    BYTE    part revision register (see #0648)
  6760.  4Eh    BYTE    X-bus Chip Select A register (see #0649)
  6761.  4Fh    BYTE    X-bus Chip Select B register???
  6762.  50h    BYTE    host select register
  6763.  51h    BYTE    deturbo frequency control register
  6764.         when deturbo mode is selected (see PORT 0CF9h), the chipset
  6765.           places a hold on the memory bus for a fraction of the
  6766.           time inversely proportional to the value in this register
  6767.           (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  6768.  52h    WORD    secondary (L2) cache control register
  6769.  54h  2 BYTEs    ???
  6770.  56h    WORD    DRAM control register
  6771.  58h    BYTE    ???
  6772.  59h  7 BYTEs    Programmable Attribute Map (PAM) registers 0-6 (see also #3401)
  6773.  60h  5 BYTEs    DRAM row boundary registers 0-4
  6774.         each register N indicates amount of memory in rows 0-N (each
  6775.           row is 64 bits wide); the fifth row of memory (if
  6776.           implemented) must contain either 8M or 16M, depending on
  6777.           system configuration
  6778.         boundary register 4 (offset 64h) contains the total system
  6779.           memory, which may not exceed 128M
  6780.  65h    BYTE    ???
  6781.  66h    BYTE    PIRQ route control register 0
  6782.  67h    BYTE    PIRQ route control register 1
  6783.  68h    BYTE    DRAM memory hole register
  6784.  69h    BYTE    top of memory
  6785.  6Ah  6 BYTEs    ???
  6786.  70h    BYTE    SMRAM control register
  6787.  71h 47 BYTEs    unused???
  6788.  A0h    BYTE    SMI control register
  6789.  A1h    BYTE    ???
  6790.  A2h    WORD    SMI enable register
  6791.  A4h    DWORD    system event enable
  6792.  A8h    BYTE    fast off timer register
  6793.  A9h    BYTE    ???
  6794.  AAh    WORD    SMI request register
  6795.  ACh    BYTE    clock throttle STPCLK# low timer
  6796.  ADh    BYTE    unused???
  6797.  AEh    BYTE    clock throttle STPCLK# high timer
  6798.  AFh    BYTE    ???
  6799.  B0h 80 BYTEs    unused???
  6800. SeeAlso: #0628,#0641,#0640,#3392,#3410
  6801.  
  6802. Bitfields for Intel 82425EX PCI control register:
  6803. Bit(s)    Description    (Table 0644)
  6804.  0    CPU-to-PCI byte merging
  6805.  1    CPU-to-PCI bursting enable
  6806.  2    PCI posted-write buffer enable
  6807.  4-3    subtractive decode sampling point
  6808.     00 slow
  6809.     01 typical
  6810.     10 fast
  6811.     11 reserved
  6812.  5    DRAM parity error enable
  6813.  6    target abort error enable
  6814.  7    reserved
  6815. SeeAlso: #0643,#0645,#0646,#0647
  6816.  
  6817. Bitfields for Intel 82425EX host device control register:
  6818. Bit(s)    Description    (Table 0645)
  6819.  0    HRDY# maximum signal sampling point
  6820.     0 slow timing
  6821.     1 fast timing
  6822.  1    HDEV# signal sampling point
  6823.     0 slow timing
  6824.     1 fast timing
  6825.  2    host device present
  6826.  7-3    reserved
  6827. SeeAlso: #0643,#0644
  6828.  
  6829. Bitfields for Intel 82425EX local-bus IDE control register:
  6830. Bit(s)    Description    (Table 0646)
  6831.  1-0    primary/secondary PCI IDE enable
  6832.     00 IDE disabled
  6833.     01 primary (ports 01F0h-01F7h,03F6,03F7h)
  6834.     10 secondary (ports 0170h-017Fh,0376h,0377h)
  6835.     11 reserved
  6836.  3-2    fast timing bank drive select 1
  6837.     bit 2 = drive 0 enabled
  6838.     bit 3 = drive 1 enabled
  6839.  5-4    IORDY sample point Enable Drive Select
  6840.     bit 4 = drive 0 enabled
  6841.     bit 5 = drive 1 enabled
  6842.  7-6    reserved
  6843.  9-8    IORDY sample point
  6844.     00 6 clocks
  6845.     01 5 clocks
  6846.     10 4 clocks
  6847.     11 3 clocks
  6848.  12-10    recover time (000 = 8 PCI clocks, 001 = 7, ..., 101 = 3, 110/111 = 3)
  6849.  15-13    reserved
  6850. SeeAlso: #0643,#0644
  6851.  
  6852. Bitfields for Intel chipset ISA I/O recovery timer register:
  6853. Bit(s)    Description    (Table 0647)
  6854.  1-0    16-bit I/O recovery time
  6855.     00 = 4 SYSCLKs
  6856.     01-11 = 1-3 SYSCLKs
  6857.  2    16-bit I/O recovery enable
  6858.  5-3    8-bit I/O recovery time
  6859.     000 = 8 SYSCLKs
  6860.     001-110 = 1-7 SYSCLKs
  6861.  6    8-bit I/O recovery enable
  6862.  7    (82425EX/82371) DMA reserved page register aliasing disable
  6863.     =0 ports 0090h-009Fh alias ports 0080h-008Fh
  6864.     =1 ports 0090h-009Fh forwarded to ISA bus
  6865. SeeAlso: #0642,#0643,#0644,#3410
  6866.  
  6867. Bitfields for Intel 82425EX part revision register:
  6868. Bit(s)    Description    (Table 0648)
  6869.  7-5    fabrication house identifier (read-only)
  6870.  4    E0000h-EFFFFh ISA-to-main-memory forwarding enabled
  6871.  3-0    revision ID (read-only)
  6872. SeeAlso: #0643,#0649
  6873.  
  6874. Bitfields for Intel 82425EX/82371 X-bus Chip Select A register:
  6875. Bit(s)    Description    (Table 0649)
  6876.  7    extended BIOS enabled at FFF80000h-FFFDFFFFh
  6877.  6    lower (E000h) BIOS enabled
  6878.  5    trigger IRQ13 on FERR#
  6879.  4    IRQ12 mouse function enabled
  6880.  3    reserved (0)
  6881.  2    BIOS memory write protect
  6882.  1    keyboard controller addresses (60h,62h,64h,66h) enabled
  6883.  0    RTC addresses (70h-77h) enabled
  6884. SeeAlso: #0643,#3410,#0648
  6885.  
  6886. Format of PCI Configuration Data for Intel 82439HX:
  6887. Offset    Size    Description    (Table 3407)
  6888.  00h 64 BYTEs    header (see #0628)
  6889.         (vender ID 8086h, device ID 1250h)
  6890.         (revision ID 00h = A0 stepping)
  6891.  40h 16 BYTEs    reserved
  6892.  50h    BYTE    PCI Control (see #3394)
  6893.  51h    BYTE    reserved
  6894.  52h    BYTE    cache control (see #3395)
  6895.  53h  3 BYTEs    reserved
  6896.  56h    BYTE    DRAM extended control (see #3398)
  6897.  57h    BYTE    DRAM control (see #3399)
  6898.  58h    BYTE    DRAM timing (see #3400)
  6899.  59h  7 BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  6900.  60h  8 BYTEs    DRAM Row Boundary registers 0-7
  6901.         each register N indicates cumulative amount of memory in rows
  6902.           0-N (each 64 bits wide), in 4M units
  6903.  68h    BYTE    DRAM Row Type (see #3402)
  6904.         bits 0-7 indicate whether each row 0-7 contains EDO DRAM
  6905.           instead of page-mode DRAM
  6906.  69h    BYTE    ???
  6907.  6Ah  8 BYTEs    reserved
  6908.  72h    BYTE    System Management RAM control (see #3404)
  6909.  73h 29 BYTEs    reserved
  6910.  90h    BYTE    Error Command (see #3408)
  6911.  91h    BYTE    Error Status (see #3409) (read-only)
  6912.  92h    BYTE    Error Syndrome (read-only)
  6913.         latest non-zero ECC error syndrome
  6914.  93h 109 BYTEs    reserved
  6915. SeeAlso: #3392,#3424
  6916.  
  6917. Format of PCI Configuration Data for Intel 82437MX:
  6918. Offset    Size    Description    (Table 3435)
  6919.  00h 64 BYTEs    header (see #0628)
  6920.         (vendor ID 8086h, device ID 1235h)
  6921.  40h 16 BYTEs    reserved
  6922.  50h    BYTE    PCI Control (see #3436)
  6923.  51h    BYTE    reserved
  6924.  52h    BYTE    cache control (see #3395)
  6925.  53h  4 BYTEs    reserved
  6926.  57h    BYTE    DRAM Control (see #3399)
  6927.  58h    BYTE    DRAM timing (see #3400)
  6928.  59h  7 BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  6929.  60h  4 BYTEs    DRAM Row Boundary Registers 0-3
  6930.         each register N indicates cumulative amount of memory in rows
  6931.           0-N, in 4M units (each row is 64 bits wide)
  6932.  64h  4 BYTEs    reserved
  6933.  68h    BYTE    DRAM Row Type (see #3437)
  6934.  69h  9 BYTEs    reserved
  6935.  72h    BYTE    System Management RAM control (see #3404)
  6936.  73h 141 BYTEs    reserved
  6937. SeeAlso: #3392,#3438
  6938.  
  6939. Format of PCI Configuration Data for Intel 82437FX:
  6940. Offset    Size    Description    (Table 3438)
  6941.  00h 64 BYTEs    header (see #0628)
  6942.         (vendor ID 8086h, device ID 0122h) (see #3308)
  6943.  40h 16 BYTEs    reserved
  6944.  50h    BYTE    PCI Control (see #3436)
  6945.  51h    BYTE    reserved
  6946.  52h    BYTE    cache control (see #3395)
  6947.  53h  4 BYTEs    reserved
  6948.  57h    BYTE    DRAM Control (see #3399)
  6949.  58h    BYTE    DRAM timing (see #3400)
  6950.  59h  7 BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  6951.  60h  5 BYTEs    DRAM Row Boundary Registers 0-4
  6952.         each register N indicates cumulative amount of memory in rows
  6953.           0-N, in 4M units (each row is 64 bits wide)
  6954.  65h  3 BYTEs    reserved
  6955.  68h    BYTE    DRAM Row Type (see #3437)
  6956.  69h  9 BYTEs    reserved
  6957.  72h    BYTE    System Management RAM control (see #3404)
  6958.  73h 141 BYTEs    reserved
  6959. SeeAlso: #3435,#3392
  6960.  
  6961. Format of PCI Configuration Data for Intel 82437VX:
  6962. Offset    Size    Description    (Table 3392)
  6963.  00h 64 BYTEs    header (see #0628)
  6964.         (vendor ID 8086h, device ID 7030h)
  6965.         (revision ID 00h = A0 stepping)
  6966.  40h 15 BYTEs    reserved
  6967.  4Fh    BYTE    arbitration control (see #3393)
  6968.  50h    BYTE    PCI Control (see #3394)
  6969.  51h    BYTE    reserved
  6970.  52h    BYTE    cache control (see #3395)
  6971.  53h    BYTE    cache control extensions (see #3396)
  6972.  54h    WORD    SDRAM control (see #3397)
  6973.  55h    BYTE    reserved
  6974.  56h    BYTE    DRAM extended control (see #3398)
  6975.  57h    BYTE    DRAM control (see #3399)
  6976.  58h    BYTE    DRAM timing (see #3400)
  6977.  59h  7 BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  6978.  60h  5 BYTEs    DRAM Row Boundary registers 0-4
  6979.         each register N indicates amount of memory in rows 0-N in 4M
  6980.           units (each row is 64 bits wide); the fifth row of memory (if
  6981.           implemented) must contain either 8M or 16M, depending on
  6982.           system configuration
  6983.         boundary register 4 (offset 64h) contains the total system
  6984.           memory, which may not exceed 128M
  6985.  65h  2 BYTEs    reserved
  6986.  67h    BYTE    DRAM Row Type (high)
  6987.         defines memory type in DRAM row 4 in bits 4,0 (see #3402)
  6988.  68h    BYTE    DRAM Row Type (low) (see #3402)
  6989.  69h    BYTE    PCI TRDY timer (see #3403)
  6990.  6Ah  6 BYTEs    reserved
  6991.  70h    BYTE    Multi-Transaction Timer
  6992.         number of PCLKs guaranteed to the current agent before the
  6993.           82437 will grant the bus to another PCI agent on request
  6994.  71h    BYTE    reserved
  6995.  72h    BYTE    System Management RAM control (see #3404)
  6996.  73h    BYTE    shared memory buffer control (see #3405)
  6997.  74h    BYTE    shared memory buffer start address, in 0.5MB units
  6998.         end address is top-of-memory at offset 64h or start of an
  6999.           enabled PCI memory hole when top-of-memory is 16M
  7000.  76h  2 BYTEs    reserved
  7001.  78h    BYTE    graphics controller latency timers (see #3406)
  7002.  79h 135 BYTEs    reserved
  7003. SeeAlso: #3308,#0641,#0643,#3407,#3435
  7004.  
  7005. Bitfields for Intel 82437VX arbitration control:
  7006. Bit(s)    Description    (Table 3393)
  7007.  7    extended CPU-to-PIIX PHLDA# signalling enabled
  7008.  6-4    reserved
  7009.  3    CPU priority enable
  7010.     =1 CPU gets PCI bus after two PCI slots
  7011.     =0 CPU gets PCI bus after three PCI slots
  7012.  2-0    reserved
  7013. SeeAlso: #3392,#3394
  7014.  
  7015. Bitfields for Intel 82437VX/82439HX PCI Control register:
  7016. Bit(s)    Description    (Table 3394)
  7017.  7-4    reserved (82437VX)
  7018.  7    DRAM ECC/Parity Select (82439HX)
  7019.     =1 ECC
  7020.     =0 parity
  7021.  6    ECC TEST enable (82439HX)
  7022.  5    shutdown to port 92h (82439HX)
  7023.     =1 send 01h to PORT 0092h on Shutdown special cycle on host bus
  7024.  4    dual-processor NA# enable (82439HX)
  7025.  3    PCI Concurrency Enable
  7026.     =1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
  7027.     =0 CPU kept off PCI bus during all PCI bus-master cycles
  7028.  2    SERR# Output Type (82439HX only)
  7029.     =1 SERR# is actively driven high when negated
  7030.     =0 SERR# is PCI-compatible open-drain output
  7031.  1    reserved
  7032.  0    Global TXC Enable (82439HX only)
  7033.     =1 enable new 82439HX features
  7034. SeeAlso: #3392,#3407,#3395,#3436
  7035.  
  7036. Bitfields for Intel 82437FX/82437MX PCI Control register:
  7037. Bit(s)    Description    (Table 3436)
  7038.  7-5    CPU inactivity timer (in PCI Clocks less 1)
  7039.  4    reserved
  7040.  3    enable PCI Peer Concurrency
  7041.     =1 CPU can access DRAM/L2 during non-PIIX PCI master cycles
  7042.     =0 CPU kept off PCI bus during all PCI bus-master cycles
  7043.  2    disable PCI Bursting
  7044.  1    disable PCI Streaming
  7045.  0    disable Bus Concurrency
  7046. SeeAlso: #3435,#3438,#3394
  7047.  
  7048. Bitfields for Intel 82437/82439HX cache control register:
  7049. Bit(s)    Description    (Table 3395)
  7050.  7-6    secondary cache size
  7051.     00 none
  7052.     01 256K
  7053.     10 512K
  7054.     11 reserved
  7055.  5-4    L2 RAM type
  7056.     00 pipelined burst SRAM/DRAM
  7057.     01 reserved
  7058.     10 asynchronous SRAM (82437FX/MX/VX only)
  7059.     11 two banks of pipelined burst cache
  7060.  3    NA disable
  7061.     =1 never assert NA# pin
  7062.  2    reserved (82437FX/82437MX/82437VX)
  7063.  2    Extended Cacheability Enable (82439HX)
  7064.     =1 cache up to 512M
  7065.     =0 cache only first 64M
  7066.  1    Secondary Cache Force Miss or Invalidate
  7067.     =1 force all memory accesses to bypass L2 cache
  7068.  0    First Level Cache Enable
  7069.     =1 all memory accesses made non-cacheable by CPU L1 cache
  7070. SeeAlso: #3392,#3407,#3394,#3396,#3397,#3435
  7071.  
  7072. Bitfields for Intel 82437VX cache control extensions register:
  7073. Bit(s)    Description    (Table 3396)
  7074.  7-6    reserved
  7075.  5    DRAM cache detected (read-only)
  7076.  4-0    DRAM cache refresh timer
  7077.     number of HCLKs 82437VX remains idle during DRAM cache refresh
  7078. SeeAlso: #3392,#3395
  7079.  
  7080. Bitfields for Intel 82437VX SDRAM control register:
  7081. Bit(s)    Description    (Table 3397)
  7082.  15-9    reserved
  7083.  8-6    Special SDRAM Mode Select
  7084.     000 normal mode (default)
  7085.     001 enable NOP command
  7086.     010 enable All Banks Precharge command
  7087.     011 enable Mode Register Command
  7088.     100 enable CBR Cycle
  7089.     101 reserved
  7090.     11x reserved
  7091.  5    reserved
  7092.  4    CAS# latency
  7093.     =1 latency is 2 for all SDRAM cycles
  7094.     =0 latency is 3
  7095.  3    RAS# precharge and refresh timing
  7096.     =0 slower
  7097.     =1 faster
  7098.  2-0    reserved
  7099. SeeAlso: #3392,#3395
  7100.  
  7101. Bitfields for Intel 82437VX/82439HX DRAM extended control register:
  7102. Bit(s)    Description    (Table 3398)
  7103.  7    reserved
  7104.  6    (82437VX) refresh RAS# assertion length (0=4 clocks, 1=5 clocks)
  7105.  5    (82437VX) Fast EDO Path Select
  7106.  4    Speculative Leadoff Disable
  7107.  3    (82439HX) Turn-Around Insertion Enable
  7108.     =1 insert one extra clock of turnaround time after asserting MWE#
  7109.  2-1    Memory Address Drive Strength
  7110.     82437VX:        82439HX:
  7111.         00 reserved            00 8mA
  7112.         01 10mA (default)        01 8mA/12mA (MAA/MWE#)
  7113.         10 16mA            10 12mA/8mA (MAA/MWE#)
  7114.         11 reserved            11 12mA
  7115.  0    (82437VX) DRAM Symmetry Detect Mode
  7116.     (used to force some memory address lines to fixed value for detecting
  7117.       DRAM symmetry row-by-row)
  7118.  0    (82439HX) 64MBit Mode Enable
  7119.     =1 enable support for 64M SIMMs
  7120. SeeAlso: #3392,#3407,#3399
  7121.  
  7122. Bitfields for Intel 82437/82439HX DRAM control register:
  7123. Bit(s)    Description    (Table 3399)
  7124.  7-6    DRAM Hole Enable
  7125.     00 none
  7126.     01 512K-640K
  7127.     10 15M-16M (82437FX/MX/VX only)
  7128.     11 14M-16M (82437VX only)
  7129.  5    reserved
  7130.  4    (82437MX only) refresh type during Suspend
  7131.     =1 self-refreshing DRAMs in system
  7132.     =0 CAS-before-RAS refresh
  7133.  3    EDO Detect Mode enable
  7134.     (used to detect whether memory is EDO bank-by-bank)
  7135.  2-0    DRAM refresh rate
  7136.          FX/VX/HX    MX
  7137.     000 disabled    15.6 us
  7138.     001 50 MHz    31.2 us
  7139.     010 60 MHz    62.4 us
  7140.     011 66 MHz    125 us
  7141.     100 reserved    250 us
  7142.     1xx reserved    reserved
  7143. SeeAlso: #3392,#3407,#3398,#3435
  7144.  
  7145. Bitfields for Intel 82437FX/82437MX/82437VX/82439HX DRAM timing register:
  7146. Bit(s)    Description    (Table 3400)
  7147.  7    (82437FX) reserved
  7148.  7    (82437MX) MA[11:2] buffer strength
  7149.     =0 8mA
  7150.     =1 12mA
  7151.  7    (82437VX) MA-to-RAS# Delay
  7152.     =1 one clock
  7153.     =0 two clocks
  7154.  7    (82439HX) Turbo Read Leadoff
  7155.     =1 bypass first register in DRAM data pipeline, saving one clock
  7156.     (may only be set in a cacheless configuration)
  7157.  6-5    DRAM Read Burst Timing
  7158.     00 x444 (EDO and Standard Page Mode)
  7159.     01 x333 (EDO), x444 (SPM)
  7160.     10 x222 (EDO), x333 (SPM)
  7161.     11 x322 (EDO), x333 (SPM) (82437VX only)
  7162.     11 reserved (other)
  7163.  4-3    DRAM Write Burst Timing
  7164.     00 x444
  7165.     01 x333
  7166.     10 x222
  7167.     11 reserved
  7168.  2    RAS-to-CAS Delay
  7169.     =1 two clocks
  7170.     =0 three clocks
  7171.  1-0    DRAM Leadoff Timing
  7172.     82437VX Read Leadoff  Write Leadoff  RAS# Precharge
  7173.         00        11    7        3
  7174.         01        10    6        3
  7175.         10        11    7        4
  7176.         11        10    6        4
  7177.     82437FX/MX Read Lead  Write Leadoff  RAS# Precharge
  7178.         00        8    6        3
  7179.         01        7    5        3
  7180.         10        8    6        4
  7181.         11        7    5        4
  7182.     82437VX Read Leadoff  Write Leadoff  RAS# Precharge
  7183.         00        7    6        3
  7184.         01        6    5        3
  7185.         10        7    6        4
  7186.         11        6    5        4
  7187. SeeAlso: #3392,#3399,#3435,#3438
  7188.  
  7189. Bitfields for Intel 82437/82439HX Programmable Attribute Register:
  7190. Bit(s)    Description    (Table 3401)
  7191.  7    reserved
  7192.  6    cache enable (region 1)
  7193.  5    write enable (region 1)
  7194.  4    read enable (region 1)
  7195.  3    reserved
  7196.  2    cache enable (region 0)
  7197.  1    write enable (region 0)
  7198.  0    read enable (region 0)
  7199. Notes:    each programmable attribute map register controls two memory
  7200.       regions at the top of the first megabyte of memory
  7201.     for the Intel 82441FX, bits 6 and 2 are reserved, as cacheability is
  7202.       set using the Pentium Pro's MTRR registers (see MSR 000000FEh)
  7203.     Intel 82437FX/82437MX/82437VX/82439HX/82441FX PAM registers/regions:
  7204.         PAM0 low: reserved
  7205.         PAM0 hi:  segment F000-FFFF
  7206.         PAM1 low: segment C000-C3FF
  7207.         PAM1 hi:  segment C400-C7FF
  7208.         PAM2 low: segment C800-CBFF
  7209.         PAM2 hi:  segment CC00-CFFF
  7210.         PAM3 low: segment D000-D3FF
  7211.         PAM3 hi:  segment D400-D7FF
  7212.         PAM4 low: segment D800-DBFF
  7213.         PAM4 hi:  segment DC00-DFFF
  7214.         PAM5 low: segment E000-E3FF
  7215.         PAM5 hi:  segment E400-E7FF
  7216.         PAM6 low: segment E800-EBFF
  7217.         PAM6 hi:  segment EC00-EFFF
  7218. SeeAlso: #3392,#3407,#3424,#3435,#3438
  7219.  
  7220. Bitfields for Intel 82437VX DRAM Row Type register:
  7221. Bit(s)    Description    (Table 3402)
  7222.  7,3    row 3 type
  7223.  6,2    row 2 type
  7224.  5,1    row 1 type
  7225.  4,0    row 0 type
  7226.     00 SPM DRAM
  7227.     01 EDO DRAM
  7228.     10 SDRAM
  7229.     11 reserved
  7230. SeeAlso: #3392,#3401
  7231.  
  7232. Bitfields for Intel 82437FX/82437MX DRAM Row Type register:
  7233. Bit(s)    Description    (Table 3437)
  7234.  7-4    reserved
  7235.  3-0    DRAM Row N is EDO instead of page-mode DRAM
  7236. SeeAlso: #3435,#3438
  7237.  
  7238. Bitfields for Intel 82437VX PCI TRDY timer:
  7239. Bit(s)    Description    (Table 3403)
  7240.  7-3    reserved
  7241.  2-0    TRDY timeout value
  7242.     000 2 PCICLKs
  7243.     001 4 PCICLKs
  7244.     010 6 PCICLKs
  7245.     011 8 PCICLKs
  7246.     1xx reserved
  7247. SeeAlso: #3392,#3404
  7248.  
  7249. Bitfields for Intel 82437/82439HX System Management RAM control register:
  7250. Bit(s)    Description    (Table 3404)
  7251.  7    reserved
  7252.  6    SMM Space Open
  7253.     =1 make SMM DRAM visible even when not in SMM if bit 4 =0
  7254.  5    SMM Space Closed
  7255.     =1 no data references permitted to SMM DRAM even in SMM
  7256.  4    SMM Space Locked
  7257.     =1 force bits 4 and 6 to become read-only; and clear bit 6
  7258.  3    SMRAM Enable
  7259.     =1 128K DRAM are accessible for use at A000 while in SMM
  7260.  2-0    SMM Space Base Segment
  7261.     010 segment A000-BFFF
  7262.     100 segment C000-CFFF (82437MX only)
  7263.     other reserved
  7264. Note:    bits 5 and 6 must never both be set at the same time
  7265. SeeAlso: #3392,#3407,#3405,#3435,#3438
  7266.  
  7267. Bitfields for Intel 82437VX Shared Memory Buffer control register:
  7268. Bit(s)    Description    (Table 3405)
  7269.  7-2    reserved
  7270.  1    enable shared memory buffer
  7271.  0    redirect shared memory buffer access
  7272.     =0 treat SMB area as a hole in system DRAM
  7273. SeeAlso: #3392,#3404,#3406
  7274.  
  7275. Bitfields for Intel 82437VX Graphics Controller Latency Timer:
  7276. Bit(s)    Description    (Table 3406)
  7277.  7-6    reserved
  7278.  5-3    GC latency for PCI reads (in 4 HCLK multiples) (default=100)
  7279.  2-0    GC latency for CPU and PCI writes (in 4 HCLK multiples) (default=011)
  7280. SeeAlso: #3392,#3405
  7281.  
  7282. Bitfields for Intel 82439HX Error Command register:
  7283. Bit(s)    Description    (Table 3408)
  7284.  7    SERR# duration
  7285.     =0 one PCI clock
  7286.     =1 until error flags are cleared
  7287.  6-3    reserved
  7288.  2    force bad parity on multiple-bit uncorrectable error
  7289.  1    assert SERR# on multiple-bit uncorrectable error
  7290.  0    assert SERR# on single-bit correctable error
  7291. SeeAlso: #3407,#3409
  7292.  
  7293. Bitfields for Intel 82439HX Error Status register:
  7294. Bit(s)    Description    (Table 3409)
  7295.  7-5    DRAM row associated with multi-bit error
  7296.  4    multi-bit uncorrectable error occurred (write 1 bit to clear)
  7297.  3-1    DRAM row associated with single-bit correctable error
  7298.  0    single-bit correctable error occurred (write 1 bit to clear)
  7299. SeeAlso: #3407,#3408
  7300.  
  7301. Format of PCI Configuration for Intel 82371FB/82371SB Function 0 (ISA Bridge):
  7302. Offset    Size    Description    (Table 3410)
  7303.  00h 64 BYTEs    header (see #0628)
  7304.         (vendor ID 8086h, device ID 122Eh/7000h)
  7305.         (revision ID 00h = 82371SB step A-1)
  7306.         (revision ID 01h = 82371SB step B-0)
  7307.  40h 12 BYTEs    reserved
  7308.  4Ch    BYTE    ISA I/O Controller Recovery Timer (see #0647)
  7309.  4Dh    BYTE    reserved
  7310.  4Eh    BYTE    X-Bus Chip Select Enable (see #0649)
  7311.  4Fh    BYTE    (82371SB) X-Bus Chip Select Enable High
  7312.         bit 0: I/O APIC enabled
  7313.  4Fh    BYTE    (82371FB) reserved
  7314.  50h 16 BYTEs    reserved
  7315.  60h  4 BYTEs    PCI IRQ Route Control (see #3342)
  7316.  64h  5 BYTEs    reserved
  7317.  69h    BYTE    top of memory (see #3415)
  7318.  6Ah    WORD    miscellaneous status (see #3416)
  7319.  6Ch  4 BYTEs    reserved
  7320.  70h    BYTE    motherboard IRQ Route Control 0 (see #3417)
  7321.  71h    BYTE    (82371FB) motherboard IRQ Route Control 1 (see #3417)
  7322.  72h  4 BYTEs    reserved
  7323.  76h  2 BYTEs    motherboard DMA control (see #3418)
  7324.  78h    WORD    programmable chip select control (see #3419)
  7325.  7Ah  6 BYTEs    reserved
  7326.  80h    BYTE    (82371SB) APIC Base Address Relocation (see #3344)
  7327.  81h    BYTE    reserved
  7328.  82h    BYTE    (82371SB) Deterministic Latency Control (see #3420)
  7329.  83h 29 BYTEs    reserved
  7330.  A0h    BYTE    SMI Control (see #3421)
  7331.  A1h    BYTE    reserved
  7332.  A2h    WORD    SMI Enable (see #3346)
  7333.  A4h    DWORD    System Event Enable (SEE) (see #3347)
  7334.  A8h    BYTE    Fast-Off Timer (in minutes, PCICLKs, or milliseconds)
  7335.         value is count less one; timer must be stopped before
  7336.           changing its value
  7337.  A9h    BYTE    reserved
  7338.  AAh    WORD    SMI Request (see #3348)
  7339.  ACh    BYTE    Clock Scale STPCLK# Low Timer
  7340.         STPCLK# stays low for 1+1056*(value+1) PCICLKs
  7341.  ADh    BYTE    reserved
  7342.  AEh    BYTE    Clock Scale STPCLK# High Timer
  7343.         STPCLK# stays high for 1+1056*(value+1) PCICLKs
  7344.  AFh 81 BYTEs    reserved
  7345. SeeAlso: #3411,#3414,#0642,#0643,#3392,#3407
  7346.  
  7347. Format of PCI Configuration for Intel 82371FB/82371SB Function 1 (IDE):
  7348. Offset    Size    Description    (Table 3411)
  7349.  00h 64 BYTEs    header (see #0628)
  7350.         (vender ID 8086h, device ID 1230h/7010h)
  7351.  20h    DWORD    Bus Master Interface Base Address
  7352.         (see PORT xxxxh"Intel 82371SB")
  7353.  40h    WORD    IDE timing modes, primary channel (see #3412)
  7354.  42h    WORD    IDE timing modes, secondary channel (see #3412)
  7355.  44h    BYTE    (82371SB) slave IDE timing register (see #3413)
  7356.  45h 187 BYTEs    reserved
  7357. SeeAlso: #3410,#3414,PORT xxxxh"Intel 82371SB"
  7358.  
  7359. Format of PCI Configuration for Intel 82371SB Function 2 (USB):
  7360. Offset    Size    Description    (Table 3414)
  7361.  00h 64 BYTEs    header (see #0628)
  7362.         (vendor ID 8086h, device ID 7020h)
  7363.  20h    DWORD    I/O space base address
  7364.         (see PORT xxxxh"Intel 82371SB")
  7365.  40h 32 BYTEs    reserved
  7366.  60h    BYTE    Serial Bus Specification release number
  7367.         00h pre-release 1.0
  7368.         10h Release 1.0
  7369.  61h  9 BYTEs    reserved
  7370.  6Ah    WORD    miscellaneous status (see #3422)
  7371.  6Ch 84 BYTEs    reserved
  7372.  C0h    WORD    legacy support (see #3423)
  7373.  C2h 62 BYTEs    reserved
  7374. SeeAlso: #3410,#3411,PORT xxxxh"Intel 82371SB"
  7375.  
  7376. Bitfields for Intel 82371FB/82371SB top of memory register:
  7377. Bit(s)    Description    (Table 3415)
  7378.  7-4    top of ISA memory (in megabytes, less 1; i.e. 0001 = 2M)
  7379.  3    ISA/DMA lower BIOS forwarding enable
  7380.  2    (82371SB) enable A000/B000 segment forwarding to PCI bus
  7381.  1    enable forwarding ISA/DMA 512K-640K region to PCI bus
  7382.  0    reserved
  7383. SeeAlso: #3410,#3416
  7384.  
  7385. Bitfields for Intel 82371FB/82371SB miscellaneous status register:
  7386. Bit(s)    Description    (Table 3416)
  7387.  15    (82371SB) enable SERR# on delayed transaction
  7388.     write 1 to clear this bit
  7389.  14-8    reserved
  7390.  7    (82371SB) NB Retry Enable
  7391.  6    (82371SB) EXTSMI# Mode Enable
  7392.     allow special SERR# protocol between PCI bridge and 82371
  7393.  5    reserved
  7394.  4    (82371SB) enable USB
  7395.     disable USB's master enable and I/O decode enable prior to
  7396.      clearing this bit!
  7397.  3    reserved
  7398.  2    (82371FB) PCI Header Type Bit enable
  7399.     =1 report multifunction device in PCI configuration header
  7400.  1    (82371FB) internal ISA DMA/external DMA Mode status (read-only)
  7401.     =0 normal DMA operation
  7402.  0    (82371FB) ISA Clock Divisor status (read-only)
  7403.     (82371SB) ISA Clock Divisor (read-write)
  7404.     =1 SYSCLK clock divisor is 3
  7405.     =0 SYSCLK clock divisor is 4
  7406. SeeAlso: #3410,#3415
  7407.  
  7408. Bitfields for Intel 82371FB/82371SB motherboard IRQ Route Control:
  7409. Bit(s)    Description    (Table 3417)
  7410.  7    disable IRQ routing
  7411.  6    enable MIRQx/IRQx sharing
  7412.  5    (82371SB) enable IRQ0 output
  7413.  4    reserved (0)
  7414.  3-0    ISA IRQ number to which to route the PCI IRQ
  7415. Note:    IRQs 0-2, 8, and 13 are reserved
  7416. SeeAlso: #3410,#3415,#3418
  7417.  
  7418. Bitfields for Intel 82371FB/82371SB motherboard DMA control:
  7419. Bit(s)    Description    (Table 3418)
  7420.  7    type F and DMA buffer enable
  7421.  6-4    reserved
  7422.  3    (82371FB) disable motherboadr DMA channel
  7423.  2-0    DMA channel number
  7424.     (82371FB) Type F and Motherboard DMA
  7425.     (82371SB) Type F DMA
  7426. SeeAlso: #3410,#3417
  7427.  
  7428. Bitfields for Intel 82371FB/83271SB programmable chip select control register:
  7429. Bit(s)    Description    (Table 3419)
  7430.  15-2    I/O address which will assert PCS# signal
  7431.  1-0    PCS address mask
  7432.     00 four bytes
  7433.     01 eight contiguous bytes
  7434.     10 disabled
  7435.     11 sixteen contiguous bytes
  7436. SeeAlso: #3410,#3418,#3420
  7437.  
  7438. Bitfields for Intel 82371SB Deterministic Latency Control register:
  7439. Bit(s)    Description    (Table 3420)
  7440.  7-4    reserved
  7441.  3    enable SERR# on delayed transaction timeout
  7442.  2    enable USB passive release
  7443.  1    enable passive release
  7444.  0    enable delayed transactions
  7445. SeeAlso: #3410,#3419
  7446.  
  7447. Bitfields for Intel 82371FB/82371SB SMI Control Register:
  7448. Bit(s)    Description    (Table 3421)
  7449.  7-5    reserved
  7450.  4-3    Fast-Off Timer freeze/granularity selection
  7451.     00 one minute granularity (assuming 33 MHz PCICLK)
  7452.     01 disabled (frozen)
  7453.     10 one PCICLK
  7454.     11 one millisecond
  7455.  2    STPCLK# scaling enable
  7456.     =1 enable Clock Scale bytes in PCI configuration space
  7457.  1    STPCLK# signal enable
  7458.     =1 assert STPCLK# on read from PORT 00B2h
  7459.  0    SMI# Gate
  7460.     =1 enable SMI# on system management interrupt
  7461. Notes:    bit 1 is cleared either with an explicit write of 0 here, or by any
  7462.       write to PORT 00B2h
  7463.     bit 0 does not affect the recording of SMI events, so a pending SMI
  7464.       will cause an immediate SMI# when the bit is set
  7465. SeeAlso: #3410,#3345
  7466.  
  7467. Bitfields for Intel 82371FB/82371SB IDE timing modes:
  7468. Bit(s)    Description    (Table 3412)
  7469.  15    IDE decode enable
  7470.  14    (82371SB) slave IDE timing register enable (see #3413)
  7471.  13-12    IORDY# sample point
  7472.     00 five clocks after DIOx# assertion
  7473.     01 four clocks
  7474.     10 three clocks
  7475.     11 two clocks
  7476.  11-10    reserved
  7477.  9-8    recovery time between IORDY# sample point and DIOx#
  7478.     00 four clocks
  7479.     01 three clocks
  7480.     10 two clocks
  7481.     11 one clock
  7482.  7    DMA timing enable only, drive 1
  7483.  6    prefetch and posting enable, drive 1
  7484.  5    IORDY# sample point enable drive select 1
  7485.  4    fast timing bank drive select 1
  7486.  3    DMA timing enable only, drive 0
  7487.  2    prefetch and posting enable, drive 0
  7488.  1    IORDY# sample point enable drive select 0
  7489.  0    fast timing bank drive select 0
  7490. SeeAlso: #3411
  7491.  
  7492. Bitfields for Intel 82371SB slave IDE timing register:
  7493. Bit(s)    Description    (Table 3413)
  7494.  7-6    secondary drive 1 IORDY# sample point
  7495.     00 five clocks after DIOx# assertion
  7496.     01 four clocks
  7497.     10 three clocks
  7498.     11 two clocks
  7499.  5-4    secondary drive 1 recovery time
  7500.     00 four clocks
  7501.     01 three clocks
  7502.     10 two clocks
  7503.     11 one clock
  7504.  3-2    primary drive 1 IORDY# sample point
  7505.  1-0    primary drive 1 recovery time
  7506. SeeAlso: #3412
  7507.  
  7508. Bitfields for Intel 82371SB miscellaneous status:
  7509. Bit(s)    Description    (Table 3422)
  7510.  15-1    reserved
  7511.  0    USB clock selection
  7512.     =1 48 MHz
  7513.     =0 24 MHz
  7514. SeeAlso: #3414,#3423
  7515.  
  7516. Bitfields for Intel 82371SB legacy support register:
  7517. Bit(s)    Description    (Table 3423)
  7518.  15    A20GATE pass-through sequence ended
  7519.     write 1 to clear this bit
  7520.  14    reserved
  7521.  13    USB PIRQ enabled
  7522.  12    USR IRQ status (read-only)
  7523.  11    trap caused by write to PORT 0064h
  7524.     write 1 to clear this bit
  7525.  10    trap caused by read from PORT 0064h
  7526.     write 1 to clear this bit
  7527.  9    trap caused by write to PORT 0060h
  7528.     write 1 to clear this bit
  7529.  8    trap caused by read from PORT 0060h
  7530.     write 1 to clear this bit
  7531.  7    enable SMI at end of A20GATE Pass-Through
  7532.  6    A20GATE pass-through sequence in progress (read-only)
  7533.  5    enable A20GATE pass-through sequence
  7534.     (write PORT 64h,D1h; write 60h,xxh; read 64h; write 64h,FFh)
  7535.  4    enable trap/SMI on USB IRQ
  7536.  3    enable trap/SMI on PORT 0064h write
  7537.  2    enable trap/SMI on PORT 0064h read
  7538.  1    enable trap/SMI on PORT 0060h write
  7539.  0    enable trap/SMI on PORT 0060h read
  7540. SeeAlso: #3414,#3422
  7541.  
  7542. Format of PCI Configuration Data for Intel 82441FX:
  7543. Offset    Size    Description    (Table 3424)
  7544.  00h 64 BYTEs    header (see #0628)
  7545.         (vendor ID 8086h, device ID 1237h) (see #3308)
  7546.  40h 16 BYTEs    reserved
  7547.  50h    WORD    PMC Configuration (see #3425)
  7548.  52h    BYTE    deturbo counter control
  7549.         when deturbo mode is selected (see PORT 0CF9h), the chipset
  7550.           places a hold on the memory bus for a fraction of the
  7551.           time inversely proportional to the value in this register
  7552.           (i.e. C0h = 1/4, 80h = 1/2, 40h = 3/4, 20h = 7/8, etc.)
  7553.  53h    BYTE    DBX buffer control (see #3426)
  7554.  54h    BYTE    auxiliary control (see #3427)
  7555.  55h    WORD    DRAM Row Type (see #3428)
  7556.  57h    BYTE    DRAM Control (see #3429)
  7557.  58h    BYTE    DRAM Timing (see #3430)
  7558.  59h  7 BYTEs    Programmable Attribute Map registers 0-6 (see #3401)
  7559.  60h  8 BYTEs    DRAM Row Buondary registers 0-7
  7560.         each register N indicates cumulative amount of memory in rows
  7561.           0-N (each 64 bits wide), in 8M units
  7562.  68h    BYTE    Fixed DRAM Hole Control
  7563.  69h  7 BYTEs    reserved
  7564.  70h    BYTE    Multi-Transaction Timer
  7565.         number of PCLKs guaranteed to the current agent before the
  7566.           82441 will grant the bus to another PCI agent on request
  7567.  71h    BYTE    CPU Latency Timer (see #3431)
  7568.  72h    BYTE    System Management RAM control (see #3404)
  7569.  73h 29 BYTEs    reserved
  7570.  90h    BYTE    Error Command (see #3432)
  7571.  91h    BYTE    Error Status (see #3433)
  7572.  92h    BYTE    reserved
  7573.  93h    BYTE    Turbo Reset Control (see #3434)
  7574.  94h 108 BYTEs    reserved
  7575. SeeAlso: #3407,#3392
  7576.  
  7577. Bitfields for Intel 82441FX PMC Configuration Register:
  7578. Bit(s)    Description    (Table 3425)
  7579.  15    WSC Protocol Enable
  7580.  14    Row Select/Extra Copy select (read-only)
  7581.     =1 pins on PMC configured as two additional row selects (6/7)
  7582.     =0 extra copy of two lowest memory address bits enabled
  7583.  13-10    reserved
  7584.  9-8    host frequence select
  7585.     00 reserved
  7586.     01 60 MHz
  7587.     10 66 MHz
  7588.     11 reserved
  7589.  7    reserved
  7590.  6    ECC/Parity TEST enable
  7591.  5-4    DRAM Data Integrity Mode
  7592.     00 no parity/ECC
  7593.     01 parity generated and checked
  7594.     10 ECC generated and checked, correction disabled
  7595.     10 ECC generated and checked, correction enabled
  7596.  3    reserved
  7597.  2    In-Order Queue size (0=one, 1=four)
  7598.  1-0    reserved
  7599. SeeAlso: #3424,#3426
  7600.  
  7601. Bitfields for Intel 82441FX DBX buffer control register:
  7602. Bit(s)    Description    (Table 3426)
  7603.  7    enable delayed transactions
  7604.  6    enable CPU-to-PCI IDE posting
  7605.  5    enable USWC Write Post during I/O Bridge access
  7606.  4    disable PCI Delayed Transaction timer
  7607.  3    enable CPU-to-PCI Write Post
  7608.  2    enable PCI-to-DRAM pipeline
  7609.  1    enable PCI Burst Write Combining
  7610.  0    enable Read-Around-Write
  7611. SeeAlso: #3424,#3425
  7612.  
  7613. Bitfields for Intel 82441FX auxiliary control register:
  7614. Bit(s)    Description    (Table 3427)
  7615.  7    enable RAS precharge
  7616.  6-2    reserved
  7617.  1    Lower Memory Address Buffer Set A
  7618.     =0 8mA
  7619.     =1 12mA
  7620.  0    reserved
  7621. SeeAlso: #3424
  7622.  
  7623. Bitfields for Intel 82441FX DRAM Row Type register:
  7624. Bit(s)    Description    (Table 3428)
  7625.  15-14    row 7 DRAM type
  7626.  13-12    row 6 DRAM type
  7627.  11-10    row 5 DRAM type
  7628.  9-8    row 4 DRAM type
  7629.  7-6    row 3 DRAM type
  7630.  5-4    row 2 DRAM type
  7631.  3-2    row 1 DRAM type
  7632.  1-0    row 0 DRAM type
  7633.     00 fast page-mode DRAM
  7634.     01 EDO DRAM
  7635.     10 BEDO DRAM
  7636.     11 empty row
  7637. SeeAlso: #3424,#3429
  7638.  
  7639. Bitfields for Intel 82441FX DRAM Control register:
  7640. Bit(s)    Description    (Table 3429)
  7641.  7    reserved
  7642.  6    enable DRAM Refresh Queue
  7643.  5    enable DRAM EDO Auto-Detect Mode
  7644.  4    DRAM Refresh Type
  7645.     =0 CAS before RAS
  7646.     =1 RAS only
  7647.  3    reserved
  7648.  2-0    DRAM refresh rate
  7649.     000 disabled
  7650.     001 normal (as set by PMCCFG register)
  7651.     01x reserved
  7652.     1xx reserved
  7653.     111 fast refresh (every 32 host clocks)
  7654. SeeAlso: #3424,#3428,#3430
  7655.  
  7656. Bitfields for Intel 82441FX DRAM Timing register:
  7657. Bit(s)    Description    (Table 3430)
  7658.  7    reserved
  7659.  6    enable WCBR Mode
  7660.  5-4    DRAM Read Burst Timing
  7661.         BEDO    EDO    FPM
  7662.     00    x333    x444    x444
  7663.     01    x222    x333    x444
  7664.     10    x222    x222    x333
  7665.     11    res.    res.    res.
  7666.  3-2    DRAM Write Burst Timing
  7667.         (B)EDO    FPM
  7668.     00    x444    x444
  7669.     01    x333    x444
  7670.     10    x333    x333
  7671.     11    x222    x333
  7672.  1    RAS-to-CAS delay
  7673.     =1 one clock
  7674.     =0 zero clocks
  7675.  0    insert one MA Wait State
  7676. SeeAlso: #3424,#3429
  7677.  
  7678. Bitfields for Intel 82441FX CPU Latency Timer register:
  7679. Bit(s)    Description    (Table 3431)
  7680.  7-5    reserved
  7681.  4-0    snoop stall count value
  7682. SeeAlso: #3424
  7683.  
  7684. Bitfields for Intel 82441FX Error Command register:
  7685. Bit(s)    Description    (Table 3432)
  7686.  7-5    reserved
  7687.  4    enable SERR# on receiving Target Abort
  7688.  3    enable SERR# on PCI Parity Error (PERR#)
  7689.  2    reserved
  7690.  1    enable SERR# on receiving multiple-bit ECC/Parity error
  7691.  0    enable SERR# on receiving single-bit ECC error
  7692. SeeAlso: #3424,#3433
  7693.  
  7694. Bitfields for Intel 82441FX Error Status register:
  7695. Bit(s)    Description    (Table 3433)
  7696.  7-5    DRAM row causing first multi-bit error (read-only)
  7697.  4    multiple-bit uncorrectable error detected
  7698.     write 1 to this bit to clear it
  7699.  3-1    DRAM row causing first single-bit error (read-only)
  7700.  0    single-bit correctable ECC error detected
  7701.     write 1 to this bit to clear it
  7702. SeeAlso: #3424,#3432
  7703.  
  7704. Bitfields for Intel 82441FX Turbo Reset Control register:
  7705. Bit(s)    Description    (Table 3434)
  7706.  7-4    reserved
  7707.  3    enable BIST on hard reset
  7708.  2    reset CPU
  7709.  1    reset mode
  7710.     0 soft reset
  7711.     1 hard reset
  7712.  0    deturbo mode
  7713. SeeAlso: #3424,PORT 0CF9h
  7714.  
  7715. Format of OpenHCI Host Controller memory-mapped registers:
  7716. Offset    Size    Description    (Table 3330)
  7717.  00h    DWORD    "HcRevision"        OpenHCI revision (see #3455)
  7718.  04h    DWORD    "HcControl"        HC operating modes (see #3456)
  7719.  08h    DWORD    "HcCommandStatus"    command/status (see #3457)
  7720.  0Ch    DWORD    "HcInterruptStatus"    interrupt status (see #3458)
  7721.  10h    DWORD    "HcInterruptEnable"    enable interrupts (see #3459)
  7722.  14h    DWORD    "HcInterruptDisable"    disable interrupts (see #3459)
  7723.  18h    DWORD    "HcHCCA"        HC Communications Area (see #3462)
  7724.  1Ch    DWORD    "HcPeriodCurrentED"    Endpoint Descriptor addr (see #3463)
  7725.  20h    DWORD    "HcControlHeadED"    Control Endpoint Descriptor (see #3464)
  7726.  24h    DWORD    "HcControlCurrentED"    Control Endpoint Descriptor (see #3464)
  7727.  28h    DWORD    "HcBulkHeadED"        Bulk Endpoint Descriptor (see #3465)
  7728.  2Ch    DWORD    "HcBulkCurrentED"    Bulk Endpoint Descriptor (see #3465)
  7729.  30h    DWORD    "HcDoneHead"        last completed Xfer Descr. (see #3466)
  7730.  34h    DWORD    "HcFmInterval"        Frame bit-time interval (see #3516)
  7731.  38h    DWORD    "HcFmRemaining"        bit time remaining in Frame (see #3517)
  7732.  3Ch    DWORD    "HcFmNumber"        Frame Number (bits 15-0)
  7733.  40h    DWORD    "HcPeriodicStart"    earliest time to start periodic list
  7734.                     (bits 13-0)
  7735.  44h    DWORD    "HcLSThreshold"        threshold for Low Speed transaction
  7736.                     (bits 11-0)
  7737.  48h    DWORD    "HcRhDescriptorA"    Root Hub Descriptor A (see #3518)
  7738.  4Ch    DWORD    "HcRhDescriptorB"    Root Hub Descriptor B (see #3519)
  7739.  50h    DWORD    "HcRhStatus"        Root Hub status (see #3520)
  7740.  54h  N DWORDs    "HCRhPortStatus[1-N]"    Root Hub port status N (see #3521)
  7741. Note:    OpenHCI reserves a full 4K page of the systems address space for its
  7742.       memory-mapped registers
  7743. SeeAlso: #0628,#0633,#F057
  7744.  
  7745. Bitfields for OpenHCI "HcRevision" register:
  7746. Bit(s)    Description    (Table 3455)
  7747.  31-8    reserved
  7748.  7-0    BCD OpenHCI specification number (10h = 1.0, 11h = 1.1)
  7749. Note:    this register is read-only
  7750. SeeAlso: #3330,#3456
  7751.  
  7752. Bitfields for OpenHCI "HcControl" register:
  7753. Bit(s)    Description    (Table 3456)
  7754.  31-11    reserved
  7755.  10    RWE    enable Remote Wakeup feature
  7756.  9    RWC    controller supports Remote Wakeup signalling
  7757.  8    IR    Interrupt Routing
  7758.         0 normal host bus interrupt
  7759.         1 System Managment Interrupt
  7760.  7-6    HCFS    USB Host Controller Functional State
  7761.         00 USBReset
  7762.         01 USBResume
  7763.         10 USBOperational
  7764.         11 USBSuspend
  7765.  5    BLE    enable Bulk List processing in next frame
  7766.  4    CLE    enable Control List processing in next frame
  7767.  3    IE    enable Isochronous ED processing
  7768.  2    PLE    enable processing of Periodic List in next frame
  7769.  1-0    CBSR    Control Bulk Service Ratio
  7770.         00  1:1 Control EDs:Bulk EDs served
  7771.         01  2:1
  7772.         10  3:1
  7773.         11  4:1
  7774. SeeAlso: #3330,#3455,#3457
  7775.  
  7776. Bitfields for OpenHCI "HcCommandStatus" register:
  7777. Bit(s)    Description    (Table 3457)
  7778.  31-18    reserved
  7779.  17-16    SOC    scheduling-overrun count
  7780.  15-4    reserved
  7781.  3    OCR    ownership change request is pending
  7782.  2    BLF    bulk list contains TDs
  7783.  1    CLF    control list contains TDs
  7784.  0    HCR    host controller software reset
  7785. Note:    writing a 1 bit sets the corresponding bit, while a 0 bit leaves the
  7786.       corresponding bit unchanged
  7787. SeeAlso: #3330,#3455,#3458
  7788.  
  7789. Bitfields for OpenHCI "HcInterruptStatus" register:
  7790. Bit(s)    Description    (Table 3458)
  7791.  31    reserved (0)
  7792.  30    OC    ownership change
  7793.  29-7    reserved
  7794.  6    RHSC    Root Hub status changed
  7795.  5    FNO    frame number overflowed
  7796.  4    UE    unrecoverable error
  7797.  3    RD    resume detected
  7798.  2    SF    start of frame
  7799.  1    WDH    writeback done
  7800.  0    SO    scheduling overrun
  7801. Note:    writing a 1 bit clears the corresponding bit of the register
  7802. SeeAlso: #3330,#3455,#3457,#3459
  7803.  
  7804. Bitfields for OpenHCI "HcInterruptEnable" and "HcInterruptDisable" registers:
  7805. Bit(s)    Description    (Table 3459)
  7806.  31    MIE    master interrupt enable
  7807.  30    OC    ownership change
  7808.  29-7    reserved
  7809.  6    RHSC    Root Hub status change
  7810.  5    FNO    frame number overflow
  7811.  4    UE    unrecoverable error
  7812.  3    RD    Resume Detect
  7813.  2    SF    start of frame
  7814.  1    WDH    HcDoneHead writeback
  7815.  0    SO    scheduling overrun
  7816. Note:    writing a 1 bit to HcInterruptEnable enables the corresponding
  7817.       interrupt, while writing a 1 bit to HcInterruptDisable disables it;
  7818.       zero bits are ignored.  On reading, both registers return the
  7819.       same value, which reflects the currently enabled interrupts
  7820. SeeAlso: #3330
  7821.  
  7822. Bitfields for OpenHCI "HcHCCA" register:
  7823. Bit(s)    Description    (Table 3462)
  7824.  31-8    physical address of Host Controller Communications Area (bits 31-8)
  7825.  7-0    reserved (0)
  7826. Note:    the required alignment for the HCCA may be determined by writing
  7827.       FFFFFFFFh to this register and determining the number of low-order
  7828.       zero bits
  7829. SeeAlso: #3330,#3463,#3464
  7830.  
  7831. Bitfields for OpenHCI "HcPeriodCurrentED" register:
  7832. Bit(s)    Description    (Table 3463)
  7833.  31-4    physical address of current Isochronous/Interrupt Endpoint Descriptor
  7834.       (bits 31-4)
  7835.  3-0    reserved (0)
  7836. SeeAlso: #3330,#3462,#3464
  7837.  
  7838. Bitfields for OpenHCI "HcControlHeadED"/"HcControlCurrentED" register:
  7839. Bit(s)    Description    (Table 3464)
  7840.  31-4    physical address of first/current Endpoint Descriptor (bits 31-4)
  7841.  3-0    reserved (0)
  7842. Note:    HcControlCurrentED is set to 0000000h to indicate the end of the
  7843.       Control list
  7844. SeeAlso: #3330,#3462,#3463
  7845.  
  7846. Bitfields for OpenHCI "HcBulkHeadED"/"HcBulkCurrentED" register:
  7847. Bit(s)    Description    (Table 3465)
  7848.  31-4    physical address of first/current Endpoint Descriptor in the Bulk
  7849.       list (bits 31-4)
  7850.  3-0    reserved (0)
  7851. Note:    HcBulkCurrentED is set to 0000000h to indicate the end of the Bulk
  7852.       list
  7853. SeeAlso: #3330,#3462,#3464
  7854.  
  7855. Bitfields for OpenHCI "HcDoneHead" register:
  7856. Bit(s)    Description    (Table 3466)
  7857.  31-4    physical address of most-recently completed Transfer Descriptor added
  7858.       to the Done queue (bits 31-4)
  7859.  3-0    reserved (0)
  7860. SeeAlso: #3330,#3463,#3465
  7861.  
  7862. Bitfields for OpenHCI "HcFmInterval" register:
  7863. Bit(s)    Description    (Table 3516)
  7864.  31    "FIT"    toggled each time a new value is loaded into bits 13-0
  7865.  30-16    "FSMPS"    largest data packet in bits
  7866.  15-14    reserved
  7867.  13-0    "FI"    Frame Interval (between to consecutive SOFs)
  7868. SeeAlso: #3330,#3517
  7869.  
  7870. Bitfields for OpenHCI "HcFmRemaining" register:
  7871. Bit(s)    Description    (Table 3517)
  7872.  31    "FRT"    loaded from bit 31 of HcFmInterval whenever FR reaches 0
  7873.  30-14    reserved
  7874.  13-0    "FR"    FrameRemaining -- bits times left in current frame
  7875. SeeAlso: #3330,#3516
  7876.  
  7877. Bitfields for OpenHCI "HcRhDescriptorA" register:
  7878. Bit(s)    Description    (Table 3518)
  7879.  31-24    "POTPGT" power-on to power-good time in 2ms units
  7880.  23-13    reserved
  7881.  12    "NOCP"    no over-current protection supported
  7882.  11    "OCPM"    over-current status reported per-port
  7883.  10    "DT"    device type - is root hub compound device?
  7884.  9    "NPS"    NoPowerSwitching -- ports are always powered up
  7885.  8    "PSM"    power-switching mode -- if set, each port powered individually
  7886.  7-0    "NDP"    number of downstream ports
  7887. SeeAlso: #3330,#3519,#3520
  7888.  
  7889. Bitfields for OpenHCI "HcRhDescriptorB" register:
  7890. Bit(s)    Description    (Table 3519)
  7891.  31-16    "PPCM"    PortPowerControlMask -- bitmask of ports NOT affected by global
  7892.           power control (bit 16 [port #0] is reserved)
  7893.  15-0    "DR"    DeviceRemovable -- bitmap of removable devices
  7894. SeeAlso: #3330,#3518,#3520
  7895.  
  7896. Bitfields for OpenHCI "HcRhStatus" register:
  7897. Bit(s)    Description    (Table 3520)
  7898.  31    "CRWE"    Clear Remote Wakeup Enable
  7899.         write 1 to disable remote wakeup (writes of 0 ignored)
  7900.  30-18    reserved
  7901.  17    "OCIC"    OverCurrent Indicator Change
  7902.         write 1 to clear
  7903.  16   R    "LPSC"    Local Power Status Change
  7904.       W        Set Global Power mode (write 1; writes of 0 ignored)
  7905.  15    "DRWE"    Device Remote Wakeup Enable
  7906.         write 1 to enable (writes of 0 ignored)
  7907.         read to get current status
  7908.  14-2    reserved
  7909.  1    "OCI"    OverCurrent Indicator
  7910.  0    R "LPS"    LocalPowerStatus (always 0 for Root Hub)
  7911.       W        write 1 to turn off power to all ports/ports with clear
  7912.           PortPowerControlMask bits
  7913. SeeAlso: #3330,#3518,#3519,#3521
  7914.  
  7915. Bitfields for OpenHCI "HcRhPortStatusN" register:
  7916. Bit(s)    Description    (Table 3521)
  7917.  31-21    reserved
  7918.  20    "PRSC"    Port Reset Status Change (write '1' to clear)
  7919.  19    "OCIC"    Port OverCurrent Indiactor Change (write '1' to clear)
  7920.  18    "PSSC"    Port Suspend Status Change (write '1' to clear)
  7921.  17    "PESC"    Port Enable Status Change (write '1' to clear)
  7922.  16    "CSC"    Connect Status Change (write '1' to clear)
  7923.  15-10    reserved
  7924.  9    R    "LSDA"    Low Speed Device Attached
  7925.       W        clear port power by writing '1'
  7926.  8    R    "PPS"    Port Power Status
  7927.       W        set port power by writing '1'
  7928.  7-5    reserved
  7929.  4    R    "PRS"    Port Reset Status
  7930.       W        set port reset by writing '1'
  7931.  3    R    "POCI"    Port OverCurrent Indicator
  7932.       W        clear suspend status by writing '1'
  7933.  2    R    "PSS"    Port Suspend Status
  7934.       W        set port suspend by writing '1'
  7935.  1    R "PES"    Port Enable Status
  7936.       W        set port enable by writing '1'
  7937.  0    R "CCS"    current connect status
  7938.       W        clear port enable by writing '1'
  7939. SeeAlso: #3330,#3518,#3519,#3520
  7940. --------X-1AB10B-----------------------------
  7941. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE
  7942.     AX = B10Bh
  7943.     BH = bus number
  7944.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  7945.     DI = register number (0000h-00FFh)
  7946.     CL = byte to write
  7947. Return: CF clear if successful
  7948.     CF set on error
  7949.     AH = status (00h,87h) (see #0625)
  7950.     EAX, EBX, ECX, and EDX may be modified
  7951.     all other flags (except IF) may be modified
  7952. Notes:    this function may require up to 1024 byte of stack; it will not enable
  7953.       interrupts if they were disabled before making the call
  7954.     the meanings of BL and BH on entry were exchanged between the initial
  7955.       drafts of the specification and final implementation
  7956. SeeAlso: AX=B108h,AX=B10Ch,AX=B10Dh,AX=B18Bh,INT 2F/AX=1684h/BX=304Ch
  7957. --------X-1AB10C-----------------------------
  7958. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD
  7959.     AX = B10Ch
  7960.     BH = bus number
  7961.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  7962.     DI = register number (multiple of 2 less than 0100h)
  7963.     CX = word to write
  7964. Return: CF clear if successful
  7965.     CF set on error
  7966.     AH = status (00h,87h) (see #0625)
  7967.     EAX, EBX, ECX, and EDX may be modified
  7968.     all other flags (except IF) may be modified
  7969. Notes:    this function may require up to 1024 byte of stack; it will not enable
  7970.       interrupts if they were disabled before making the call
  7971.     the meanings of BL and BH on entry were exchanged between the initial
  7972.       drafts of the specification and final implementation
  7973. SeeAlso: AX=B109h,AX=B10Bh,AX=B10Dh,AX=B18Ch,INT 2F/AX=1684h/BX=304Ch
  7974. --------X-1AB10D-----------------------------
  7975. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD
  7976.     AX = B10Dh
  7977.     BH = bus number
  7978.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  7979.     DI = register number (multiple of 4 less than 0100h)
  7980.     ECX = dword to write
  7981. Return: CF clear if successful
  7982.     CF set on error
  7983.     AH = status (00h,87h) (see #0625)
  7984.     EAX, EBX, ECX, and EDX may be modified
  7985.     all other flags (except IF) may be modified
  7986. Notes:    this function may require up to 1024 byte of stack; it will not enable
  7987.       interrupts if they were disabled before making the call
  7988.     the meanings of BL and BH on entry were exchanged between the initial
  7989.       drafts of the specification and final implementation
  7990. SeeAlso: AX=B10Ah,AX=B10Bh,AX=B10Ch,AX=B18Dh,INT 2F/AX=1684h/BX=304Ch
  7991. --------X-1AB10EBX0000-----------------------
  7992. INT 1A - Intel PCI BIOS v2.1+ - GET IRQ ROUTING INFORMATION
  7993.     AX = B10Eh
  7994.     BX = 0000h
  7995.     DS = segment/selector for PCI BIOS data
  7996.         (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  7997.         specified by BIOS32 services directory)
  7998.     ES:(E)DI -> IRQ routing table header (see #0666 at AX=B406h)
  7999. Return: CF clear if successful
  8000.         AH = 00h
  8001.         BX = bit map of IRQ channels permanently dedicated to PCI
  8002.         WORD ES:[DI] = size of returned data
  8003.     CF set on error
  8004.         AH = error code (59h) (see #0650)
  8005.         WORD ES:[DI] = required size of buffer
  8006. SeeAlso: AX=B10Fh,AX=B406h,INT 2F/AX=1684h/BX=304Ch
  8007. --------X-1AB10F-----------------------------
  8008. INT 1A - Intel PCI BIOS v2.1+ - SET PCI IRQ
  8009.     AX = B10Fh
  8010.     BH = bus number
  8011.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8012.     CH = number of IRQ to connect
  8013.     CL = number of interrupt pin (0Ah=INTA# to 0Dh=INTD#) to reprogram
  8014.     DS = segment/selector for PCI BIOS data
  8015.         (real mode: F000h; 16-bit PM: physical 000F0000h; 32-bit PM: as
  8016.         specified by BIOS32 services directory)
  8017. Return: CF clear if successful
  8018.         AH = 00h
  8019.     CF set on error
  8020.         AH = error code (59h) (see #0650)
  8021. Note:    assumes that the calling application has determined the IRQ routing
  8022.       topology (see AX=B10Eh), has ensured that the selected IRQ will not
  8023.       cause a conflict, and will update the interrupt line configuration
  8024.       register on all devices which currently use the IRQ line
  8025. SeeAlso: AX=B10Eh
  8026. --------X-1AB181-----------------------------
  8027. INT 1A - Intel PCI BIOS v2.0c - INSTALLATION CHECK (32-bit)
  8028.     AX = B181h
  8029. Return: as for AX=B101h
  8030. SeeAlso: AX=B101h
  8031. --------X-1AB182-----------------------------
  8032. INT 1A - Intel PCI BIOS v2.0c - FIND PCI DEVICE (32-bit)
  8033.     AX = B182h
  8034.     CX = device ID
  8035.     DX = vendor ID
  8036.     SI = device index (0-n)
  8037. Return: as for AX=B102h
  8038. SeeAlso: AX=B102h
  8039. --------X-1AB183-----------------------------
  8040. INT 1A - Intel PCI BIOS v2.0c - FIND PCI CLASS CODE (32-bit)
  8041.     AX = B183h
  8042.     ECX = class code (bits 23-0)
  8043.     SI = device index (0-n)
  8044. Return: as for AX=B103h
  8045. SeeAlso: AX=B103h
  8046. --------X-1AB186-----------------------------
  8047. INT 1A - Intel PCI BIOS v2.0c - PCI BUS-SPECIFIC OPERATIONS (32-bit)
  8048.     AX = B186h
  8049.     BH = bus number
  8050.     EDX = Special Cycle data
  8051. Return: as for AX=B106h
  8052. Note:    the meanings of BL and BH on return were exchanged between the initial
  8053.       drafts of the specification and final implementation
  8054. SeeAlso: AX=B106h
  8055. --------X-1AB188-----------------------------
  8056. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION BYTE (32-bit)
  8057.     AX = B188h
  8058.     BH = bus number
  8059.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8060.     DI = register number (0000h-00FFh)
  8061. Return: as for AX=B108h
  8062. Note:    the meanings of BL and BH on return were exchanged between the initial
  8063.       drafts of the specification and final implementation
  8064. SeeAlso: AX=B108h
  8065. --------X-1AB189-----------------------------
  8066. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION WORD (32-bit)
  8067.     AX = B189h
  8068.     BH = bus number
  8069.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8070.     DI = register number (0000h-00FFh)
  8071. Return: as for AX=B109h
  8072. Note:    the meanings of BL and BH on return were exchanged between the initial
  8073.       drafts of the specification and final implementation
  8074. SeeAlso: AX=B109h
  8075. --------X-1AB18A-----------------------------
  8076. INT 1A - Intel PCI BIOS v2.0c - READ CONFIGURATION DWORD (32-bit)
  8077.     AX = B18Ah
  8078.     BH = bus number
  8079.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8080.     DI = register number (0000h-00FFh)
  8081. Return: as for AX=B10Ah
  8082. Note:    the meanings of BL and BH on return were exchanged between the initial
  8083.       drafts of the specification and final implementation
  8084. SeeAlso: AX=B10Ah
  8085. --------X-1AB18B-----------------------------
  8086. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION BYTE (32-bit)
  8087.     AX = B18Bh
  8088.     BH = bus number
  8089.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8090.     DI = register number (0000h-00FFh)
  8091.     CL = byte to write
  8092. Return: as for AX=B10Bh
  8093. Note:    the meanings of BL and BH on return were exchanged between the initial
  8094.       drafts of the specification and final implementation
  8095. SeeAlso: AX=B10Bh
  8096. --------X-1AB18C-----------------------------
  8097. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION WORD (32-bit)
  8098.     AX = B18Ch
  8099.     BH = bus number
  8100.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8101.     DI = register number (multiple of 2 less than 0100h)
  8102.     CX = word to write
  8103. Return: as for AX=B10Ch
  8104. Note:    the meanings of BL and BH on return were exchanged between the initial
  8105.       drafts of the specification and final implementation
  8106. SeeAlso: AX=B10Ch
  8107. --------X-1AB18D-----------------------------
  8108. INT 1A - Intel PCI BIOS v2.0c - WRITE CONFIGURATION DWORD (32-bit)
  8109.     AX = B18Dh
  8110.     BH = bus number
  8111.     BL = device/function number (bits 7-3 device, bits 2-0 function)
  8112.     DI = register number (multiple of 4 less than 0100h)
  8113.     ECX = dword to write
  8114. Return: as for AX=B10Dh
  8115. Note:    the meanings of BL and BH on return were exchanged between the initial
  8116.       drafts of the specification and final implementation
  8117. SeeAlso: AX=B10Dh
  8118. --------X-1AB400-----------------------------
  8119. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - INSTALLATION CHECK
  8120.     AX = B400h
  8121. Return: CF clear if installed
  8122.     AX = 0000h if installed
  8123.         BH = ACFG major version (02h)
  8124.         BL = ACFG minor version (08h)
  8125.         CX = ??? (0002h)
  8126.         EDX = 47464341h ('GFCA', which is byte-swapped 'ACFG')
  8127.         SI = ??? (001Fh)
  8128. SeeAlso: AX=B401h,AX=B402h,AX=B403h,AX=B404h,AX=B405h,AX=B406h,AX=B407h
  8129. SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
  8130.  
  8131. (Table 0650)
  8132. Values for Intel Plug-and-Play AUTO-CONFIGURATION error codes:
  8133.  0000h    successful
  8134.  0001h    specified action could not be completed
  8135.  0051h    ???
  8136.  0055h    unable to read/write configuration table from/to nonvolatile storage
  8137.  0056h    not a valid configuration table or wrong table version
  8138.  0059h    buffer too small
  8139.  0081h    unsupported function
  8140.  FFFFh    ???
  8141. SeeAlso: #F053
  8142. --------X-1AB401-----------------------------
  8143. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET DEFAULT CONFIG TABLE
  8144.     AX = B401h
  8145. Return: CF clear if successful
  8146.         AX = 0000h
  8147.         BX = maximum size of configuration table in bytes
  8148.         CX = required configuration buffer size
  8149.         (includes scratch space used by ACFG code)
  8150.         EDI = linear/physical address of ESCD table (see #0651)
  8151.     CF set on error
  8152.         AX = error code (see #0650)
  8153. SeeAlso: AX=B400h,AX=B402h,@xxxxh:xxxxh"Plug-and-Play"
  8154.  
  8155. Format of Intel Plug-and-Play Extended System Configuration Data table:
  8156. Offset    Size    Description    (Table 0651)
  8157.  00h    WORD    total length of this table
  8158.  02h  4 BYTEs    signature "ACFG"
  8159.  06h    BYTE    minor version number
  8160.  07h    BYTE    major version number (currently 02h)
  8161.  08h    BYTE    number of boards listed in the configuration data
  8162.  09h  3 BYTEs    reserved (00h)
  8163.  0Ch    var    board data
  8164.     WORD    checksum
  8165. Notes:    this table contains information about the standard devices in the
  8166.       system, such as serial ports, parallel ports, etc.  For each device,
  8167.       it includes at least the I/O port address (03F8h,02F8h,0378h,etc).
  8168.     the sum of all words in the table, including the checksum field (with
  8169.       implied zero padding if the length is odd), must equal 0000h
  8170. SeeAlso: #0652
  8171.  
  8172. Format of Extended System Configuration Data Board Header:
  8173. Offset    Size    Description    (Table 0652)
  8174.  00h    WORD    length of this header in bytes
  8175.  02h    BYTE    slot number
  8176.         00h motherboard
  8177.         01h-0Fh ISA/EISA
  8178.         10h-40h    PCI
  8179.  03h    BYTE    reserved (00h)
  8180. SeeAlso: #0651,#0653
  8181.  
  8182. Format of Extended System Configuration Data Freeform Board Header:
  8183. Offset    Size    Description    (Table 0653)
  8184.  00h  4 BYTEs    signature "ACFG"
  8185.  04h    BYTE    minor version number
  8186.  05h    BYTE    major version number (currently 02h)
  8187.  06h    BYTE    board type
  8188.         01h ISA
  8189.         02h EISA
  8190.         04h PCI
  8191.         08h PCMCIA
  8192.         10h PnPISA
  8193.         20h MCA
  8194.  07h    BYTE    reserved (00h)
  8195.  08h    WORD    disabled functions (bit N set = function N disabled)
  8196.  0Ah    WORD    configuration error functions
  8197.  0Ch    WORD    reconfigurable functions (bit N set = function N reconfig'able)
  8198.  0Eh  2 BYTEs    reserved (00h)
  8199. SeeAlso: #0656,#0657
  8200.  
  8201. Format of Extended System Configuration Data Freeform PCI Device Data:
  8202. Offset    Size    Description    (Table 0654)
  8203.  00h    BYTE    PCI bus number
  8204.  01h    BYTE    PCI device and function number
  8205.  02h    WORD    PCI device identifier
  8206.  04h    WORD    PCI vendor ID (see #0629)
  8207.  06h  2 BYTEs    reserved (00h)
  8208. SeeAlso: #0654,#0657
  8209.  
  8210. Format of Extended System Configuration Data Freeform PnP ISA Board ID:
  8211. Offset    Size    Description    (Table 0655)
  8212.  00h    DWORD    vendor ID (EISA device identifier)
  8213.  04h    DWORD    serial number
  8214. SeeAlso: #0655,#0656
  8215.  
  8216. Format of Extended System Configuration Data PnP ISA ECD Extension Function:
  8217. Offset    Size    Description    (Table 0656)
  8218.  00h    WORD    001Eh (length of this structure)
  8219.  02h    BYTE    01h (selection size)
  8220.  03h    BYTE    00h (selection data)
  8221.  04h    BYTE    C0h (function information byte) (see #0659)
  8222.  05h    BYTE    18h (size of following free-format data)
  8223.  06h 16 BYTEs    freeform board header (see #0653)
  8224.  16h  8 BYTEs    Plug-and-Play board ID (see #0655)
  8225. Note:    ECD = Extended Configuration Data; this structure must be the last
  8226.       "function" for a particular ISA Plug-and-Play board
  8227. SeeAlso: #0657
  8228.  
  8229. Format of Extended System Configuration Data PCI ECD Extension Function:
  8230. Offset    Size    Description    (Table 0657)
  8231.  00h    WORD    length of this structure (at least 001Eh, up to 0056h)
  8232.  02h    BYTE    01h (selection size)
  8233.  03h    BYTE    00h (selection data)
  8234.  04h    BYTE    C0h (function information byte) (see #0659)
  8235.  05h    BYTE    size of following free-format data (at least 18h, max 50h)
  8236.  06h 16 BYTEs    freeform board header (see #0653)
  8237.  16h 8N BYTEs    PCI board ID (see #0654) for one to eight boards
  8238. Notes:    ECD = Extended Configuration Data; this structure must be the last
  8239.       "function" for a particular PCI board
  8240.     AMI BIOS v1.00.05.AX1 sets the length field to 001Ch for entries with
  8241.       a single board ID, apparently treating the field as the length of
  8242.       the remainder of the structure instead of the full structure's length
  8243. SeeAlso: #0656
  8244.  
  8245. Bitfields for EISA ID and Slot Information:
  8246. Bit(s)    Description    (Table 0658)
  8247.  3-0    selector among duplicate configuration file names (0000 if no dups)
  8248.  5-4    slot type
  8249.     00 expansion slot
  8250.     01 embedded
  8251.     10 virtual slot
  8252.     11 reserved
  8253.  6    ID is readable
  8254.  7    duplicate IDs present
  8255.  8    board can be disabled
  8256.  9    IOCHKERR supported
  8257.  10    board or entries locked
  8258.  13-11    reserved
  8259.  14    board does not have or need configuration file
  8260.  15    configuration not complete
  8261. SeeAlso: #0659
  8262.  
  8263. Bitfields for EISA Function Information:
  8264. Bit(s)    Description    (Table 0659)
  8265.  0    subtype data
  8266.  1    memory information (see #0660)
  8267.  2    IRQ information (see #0662)
  8268.  3    DMA information (see #0663)
  8269.  4    port range information (see #0664)
  8270.  5    port initialization data (see #0665)
  8271.  6    free form data
  8272.  7    function disabled
  8273. SeeAlso: #0656,#0657,#0658
  8274.  
  8275. Format of EISA Memory Information:
  8276. Offset    Size    Description    (Table 0660)
  8277.  00h    WORD    memory information flags (see #0661)
  8278.  02h  3 BYTEs    high 24 bits of memory start address (LSB first)
  8279.  05h    WORD    memory size in K (0000h = 65536K)
  8280. SeeAlso: #0659
  8281.  
  8282. Bitfields for EISA Memory Information Flags:
  8283. Bit(s)    Description    (Table 0661)
  8284.  0    writable (RAM rather than ROM)
  8285.  1    cached
  8286.  2    write-back cache rather than write-through
  8287.  4-3    memory type
  8288.     00 system
  8289.     01 expantion
  8290.     10 virtual
  8291.     11 other
  8292.  5    shared
  8293.  6    reserved (0)
  8294.  7    more entries follow
  8295.  9-8    memory width
  8296.     00 byte
  8297.     01 word
  8298.     10 dword
  8299.     11 reserved
  8300.  11-10    decoded address lines
  8301.     00 = 20
  8302.     01 = 24
  8303.     10 = 32
  8304.     11 reserved
  8305.  15-12    reserved (0)
  8306. SeeAlso: #0660
  8307.  
  8308. Bitfields for EISA IRQ Information:
  8309. Bit(s)    Description    (Table 0662)
  8310.  3-0    IRQ number
  8311.  4    reserved (0)
  8312.  5    IRQ triggering (0 = edge, 1 = level)
  8313.  6    IRQ is shareable
  8314.  7    more entries follow
  8315.  15-8    reserved (0)
  8316. SeeAlso: #0659
  8317.  
  8318. Bitfields for EISA DMA Information:
  8319. Bit(s)    Description    (Table 0663)
  8320.  2-0    DMA channel number
  8321.  5-3    reserved (0)
  8322.  6    shareable
  8323.  7    more entries follow
  8324.  9-8    reserved
  8325.  11-10    DMA transfer size
  8326.     00 byte
  8327.     01 word
  8328.     10 dword
  8329.     11 word, but count in bytes
  8330.  13-12    DMA timing
  8331.     00 ISA-compatible
  8332.     01 EISA type "A"
  8333.     10 EISA type "B"
  8334.     11 EISA type "C"/"F" (burst)
  8335.  15-14    reserved (0)
  8336. SeeAlso: #0659
  8337.  
  8338. Format of EISA Port Range Information:
  8339. Offset    Size    Description    (Table 0664)
  8340.  00h    BYTE    port description
  8341.         bits 4-0: number of sequential ports
  8342.         bit 5 reserved (0)
  8343.         bit 6: shareable
  8344.         bit 7: more entries follow
  8345.  01h    WORD    I/O port address
  8346. SeeAlso: #0659,#0665
  8347.  
  8348. Format of EISA Port Initialization Data:
  8349. Offset    Size    Description    (Table 0665)
  8350.  00h    BYTE    flags
  8351.         bits 1-0: port size
  8352.             00 byte
  8353.             01 word
  8354.             10 dword
  8355.             11 reserved
  8356.         bit 2: masked write
  8357.         bits 6-3 reserved (0)
  8358.         bit 7: more entries follow
  8359.  01h    ???
  8360. SeeAlso: #0659,#0664
  8361. --------X-1AB402-----------------------------
  8362. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - COPY AND VERIFY CONFIG TABLE
  8363.     AX = B402h
  8364.     DS:SI -> configuration table (see #0651)
  8365.     ES:DI -> buffer for copy of configuration table
  8366. Return: CF clear if successful
  8367.         AX = 0000h
  8368.     CF set on error
  8369.         AX = error code (0055h,0056h) (see #0650)
  8370. Note:    the buffer pointed at by ES:DI must be at least as large as the
  8371.       maximum configuration table size reported by AX=B401h
  8372. SeeAlso: AX=B400h,AX=B401h,AX=B403h
  8373. --------X-1AB403-----------------------------
  8374. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - STORE ESCD TABLE IN NVRAM
  8375.     AX = B403h
  8376.     DS:SI -> configuration table (see #0651)
  8377. Return: CF clear if successful
  8378.         AX = 0000h
  8379.     CF set on error
  8380.         AX = error code (0055h) (see #0650)
  8381. Note:    sets the configuration table's checksum field, then copies the table
  8382.       into nonvolatile storage (i.e. FlashROM)
  8383. SeeAlso: AX=B400h,AX=B402h
  8384. --------X-1AB404-----------------------------
  8385. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET AVAILABLE IRQs???
  8386.     AX = B404h
  8387.     BX = bitmap of IRQs being used???
  8388. Return: CF clear if successful
  8389.         AX = 0000h
  8390.         BX = available for ISA??? (not(BXin) & A127h)
  8391.         CX = available for on-board I/O??? (not(BXin) & 40D8h)
  8392.         DX = available for PCI??? (either not(BXin) & 0E00h or 0000h)
  8393.     CF set on error
  8394.         AX = error code (0051h) (see #0650)
  8395. Note:    the various vector types have also been called "shareable",
  8396.       "unshareable", and "avoidable"
  8397. SeeAlso: AX=B400h,INT 2F/AX=1684h/BX=304Ch
  8398. --------X-1AB405-----------------------------
  8399. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET ???
  8400.     AX = B405h
  8401. Return: AX = ??? (0008h)
  8402. SeeAlso: AX=B400h
  8403. --------X-1AB406-----------------------------
  8404. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - GET PCI IRQ ROUTING TABLE
  8405.     AX = B406h
  8406.     ES:DI -> IRQ routing table header (see #0666)
  8407. Return: CF clear if successful
  8408.         AX = 0000h
  8409.         WORD ES:[DI] = size of returned data
  8410.     CF set on error
  8411.         AX = error code (0059h) (see #0650)
  8412.         WORD ES:[DI] = required size of buffer
  8413. SeeAlso: AX=B400h,AX=B404h,AX=B10Eh,INT 2F/AX=1684h/BX=304Ch
  8414.  
  8415. Format of Intel Plug-and-Play AUTO-CONFIGURATION PCI IRQ routing header:
  8416. Offset    Size    Description    (Table 0666)
  8417.  00h    WORD    length of IRQ routing table buffer
  8418.  02h    DWORD    -> IRQ routing table array buffer (see #0667)
  8419.  
  8420. Format of Intel Plug-and-Play ACFG PCI IRQ routing table entry [array]:
  8421. Offset    Size    Description    (Table 0667)
  8422.  00h    BYTE    PCI bus number
  8423.  01h    BYTE    PCI device number (bits 7-3)
  8424.  02h    BYTE    link value for INTA#
  8425.         (if non-zero, wire-ORed together with any other PCI interrupts
  8426.           with same link value)
  8427.  03h    WORD    IRQ connectivity bit map for INTA#
  8428.         (standard AT IRQs to which PCI interrupt can be routed)
  8429.  05h    BYTE    link value for INTB#
  8430.  06h    WORD    IRQ connectivity bit map for INTB#
  8431.  08h    BYTE    link value for INTC#
  8432.  09h    WORD    IRQ connectivity bit map for INTC#
  8433.  0Bh    BYTE    link value for INTD#
  8434.  0Ch    WORD    IRQ connectivity bit map for INTD#
  8435.  0Eh    BYTE    (PCI BIOS v2.1+) device slot number (00h = motherboard)
  8436.  0Fh    BYTE    reserved
  8437. Note:    each item in the routing table corresponds to a motherboard PCI
  8438.       device or PCI slot
  8439. SeeAlso: #0666
  8440. --------X-1AB407-----------------------------
  8441. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - ???
  8442.     AX = B407h
  8443.     EDX = length of ???
  8444.     EDI = physical address of ???
  8445. Return: CF clear if successful
  8446.         AX = 0000h
  8447.         EDX = ???
  8448.         EDI = ???
  8449.     CF set on error
  8450.         AX = error code (FFFFh) (see #0650)
  8451. Notes:    returns error if EDI < 000C0000h or EDI+EDX > 00100000h
  8452.     seems to force EDI and EDX to align to 16K boundaries
  8453. SeeAlso: AX=B400h
  8454. --------X-1AB4-------------------------------
  8455. INT 1A - Intel Plug-and-Play AUTO-CONFIGURATION - 32-BIT API
  8456.     AH = B4h
  8457.     AL = function (80h-87h)
  8458.     further details not yet available
  8459. Note:    these functions are 32-bit versions of functions 00h-07h
  8460. --------c-1AC0-------------------------------
  8461. INT 1A U - Disk Spool II v2.07+ - ALTERNATE INSTALLATION CHECK
  8462.     AH = C0h
  8463. Return: (see AH=A0h)
  8464. Notes:    this call is identical to AH=A0h
  8465.     this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8466.       as that is a licensed version of Disk Spool II
  8467. SeeAlso: AH=A0h,AH=ABh,AH=D0h
  8468. --------U-1ACCCCBXCCCC-----------------------
  8469. INT 1A U - DATEFIX - INSTALLATION CHECK
  8470.     AX = CCCCh
  8471.     BX = CCCCh
  8472.     CX = 0000h
  8473. Return: CX = CCCCh if installed
  8474.         ES:BX -> original interrupt handler
  8475. Program: DATEFIX is a public-domain TSR to correct the date on AT&T 6300
  8476.       machines, where the realtime clock's calendar wraps after 1991
  8477. SeeAlso: AH=FEh,AH=FFh"AT&T"
  8478. --------c-1AD0-------------------------------
  8479. INT 1A U - Disk Spool II v2.07+ - FUNCTION CALLS
  8480.     AH = D0h
  8481.     AL = function code
  8482.         01h enable spooler and despooler
  8483.         02h enable spooler only
  8484.         03h enable despooler at beginning of file
  8485.         04h disable the despooler
  8486.         05h disable the despooler and spooler
  8487.         06h clear the spool file
  8488.         08h inhibit the popup menu
  8489.         09h enable the popup menu
  8490.         0Ah ??? (called by Disk Spool's INT 21 handler)
  8491.         0Bh disable the spooler
  8492.         0Ch start despooler after last successfully printed document
  8493.         0Dh start despooler at the exact point where it last left off
  8494.         0Eh pop up the menu
  8495.         0Fh ???
  8496.         11h start new spool file??? (called by Disk Spool's INT 21 handler
  8497.             when a program terminates)
  8498.         14h ???
  8499.         15h delete despool file and reset ???
  8500.         16h ??? (writes something to unknown file)
  8501.         17h ??? (writes something to despool file, then reads something
  8502.             else and ???)
  8503.         18h ??? (reads something from despool file, and then ???)
  8504.         19h ??? (creates/truncates spool file)
  8505.         20h clear file pointed to by the despooler
  8506.         21h ??? (writes something to unknown file)
  8507.         22h ??? (writes something to spool file if spooler/despooler using
  8508.             same file)
  8509.         23h ??? (opens/creates unknown file, then ???)
  8510.         30h ???
  8511.         31h ???
  8512.         32h beep
  8513.         33h append CRLF to spool file???
  8514.         34h ???
  8515.         35h ???
  8516.         36h ???
  8517.         37h append CRLF to spool file and start a new spool file???
  8518.         38h ???
  8519.         40h ??? (v4.05)
  8520.         41h ??? (v4.05)
  8521.         51h ??? (called by Disk Spool's INT 21 handler)
  8522.         52h ??? (called by Disk Spool's INT 21 handler)
  8523.         57h ???
  8524.         5Ah ??? (v4.05)
  8525.         5Bh ??? (v4.05)
  8526.         5Ch ??? (v4.05)
  8527. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8528.       as that is a licensed version of Disk Spool II
  8529. SeeAlso: AH=A0h,AH=ADh
  8530. --------c-1AE0-------------------------------
  8531. INT 1A - Disk Spool II v4.0x - ENABLE/DISABLE
  8532.     AH = E0h
  8533.     AL = subfunction
  8534.         01h enable spooler
  8535.         02h disable spooler
  8536.         03h enable despooler
  8537.         04h disable despooler
  8538.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8539. Return: AH = status
  8540.         00h successful
  8541.         F0h printer port not managed by Disk Spool II
  8542.         FFH failed
  8543. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8544.       as that is a licensed version of Disk Spool II
  8545. SeeAlso: AH=A0h,AH=E1h,AX=E301h,AX=E401h
  8546. --------c-1AE1-------------------------------
  8547. INT 1A - Disk Spool II v4.0x - GET STATUS
  8548.     AH = E1h
  8549.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8550. Return: AH = status
  8551.         00h successful
  8552.         CL = despooler state (00h disabled, 41h enabled)
  8553.         CH = spooler state (00h disabled, 41h enabled)
  8554.         DL = despooler activity (00h standing by, 41h printing)
  8555.         ES:BX -> ASCIZ name of current spool file (or next if AutoSpool
  8556.             or AutoDespool enabled)
  8557.         ES:SI -> ASCIZ name of current despool file
  8558.         ES:DI -> 3-byte file extension used by Disk Spool II
  8559.         F0h printer port not managed by Disk Spool II
  8560. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8561.       as that is a licensed version of Disk Spool II
  8562. SeeAlso: AH=A0h,AH=E0h,AH=E2h
  8563. --------U-1AE11B-----------------------------
  8564. INT 1A - TheGrab v4.60 - ???
  8565.     AX = E11Bh
  8566.     ???
  8567. Return: ??? (may destroy all registers)
  8568. SeeAlso: AX=E11Dh
  8569. --------U-1AE11D-----------------------------
  8570. INT 1A - TheGrab v4.60 - INSTALLATION CHECK
  8571.     AX = E11Dh
  8572. Return: ES:DI -> signature block (see #0668) if installed
  8573.         CX = length of signature block (000Fh)
  8574. Program: TheGrab is a resident ANSI screen grabber bundled with TheDraw
  8575. SeeAlso: AX=E11Bh
  8576.  
  8577. Format of TheGrab signature block:
  8578. Offset    Size    Description    (Table 0668)
  8579.  00h    BYTE    08h
  8580.  01h  8 BYTEs    ASCIZ "THEGRAB"
  8581.  09h  6 BYTEs    ??? (zeros)
  8582. --------c-1AE2-------------------------------
  8583. INT 1A - Disk Spool II v4.0x - GET SPOOL FILES
  8584.     AH = E2h
  8585.     AL = which
  8586.         01h first
  8587.         02h next (can only call after "first")
  8588.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8589. Return: AH = status
  8590.         00h successful
  8591.         ES:BX -> ASCIZ filename
  8592.         F0h no (more) spool files
  8593.         FFh failed
  8594. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8595.       as that is a licensed version of Disk Spool II
  8596. SeeAlso: AH=E0h,AH=E1h
  8597. --------c-1AE301-----------------------------
  8598. INT 1A - Disk Spool II v4.0x - GET SPOOL FILE STATUS
  8599.     AX = E301h
  8600.     ES:BX -> ASCIZ filename (max 32 chars)
  8601. Return: AH = status
  8602.         00h successful
  8603.         ES:SI -> spool file status record (see #0669)
  8604.         F0h not a spool file
  8605.         FFh failed
  8606. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8607.       as that is a licensed version of Disk Spool II
  8608. SeeAlso: AH=E0h,AX=E302h,AX=E401h
  8609.  
  8610. Format of Disk Spool II spool file status record:
  8611. Offset    Size    Description    (Table 0669)
  8612.  00h    BYTE    hour of creation or last update
  8613.  01h    BYTE    minute of creation or last update
  8614.  02h    BYTE    year-1980 of creation or last update
  8615.  03h    BYTE    month of creation or last update
  8616.  04h    BYTE    day of creation or last update
  8617.  05h    BYTE    total number of copies to print
  8618.  06h    BYTE    number of copies already printed
  8619.  07h    BYTE    printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8620.  08h    BYTE    save status (00h delete after printing, 01h save)
  8621.  09h    BYTE    file status
  8622.         01h done printing, but being saved
  8623.         02h on hold
  8624.         03h queued for printing
  8625.         04h being spooled
  8626.         05h being despooled (i.e. printed)
  8627.  0Ah 16 BYTEs    ASCIZ description
  8628.  1Ah  2 WORDs    file size in bytes (high,low)
  8629.  1Eh  2 WORDs    bytes left to print (high,low)
  8630. --------c-1AE302-----------------------------
  8631. INT 1A - Disk Spool II v4.0x - UPDATE SPOOL FILE
  8632.     AX = E302h
  8633.     ES:BX -> ASCIZ filename (max 32 chars)
  8634.     ES:SI -> spool file status record (see #0669)
  8635. Return: AH = status
  8636.         00h successful
  8637.         F0h not a spool file
  8638.         FFh failed
  8639. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8640.       as that is a licensed version of Disk Spool II
  8641. SeeAlso: AH=E0h,AX=E301h,AX=E401h
  8642. --------c-1AE401-----------------------------
  8643. INT 1A - Disk Spool II v4.0x - SPOOL EXISTING FILE
  8644.     AX = E401h
  8645.     ES:BX -> ASCIZ filename (max 32 chars)
  8646.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8647. Return: AH = status
  8648.         00h successful
  8649.         FFh failed
  8650. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8651.       as that is a licensed version of Disk Spool II
  8652. SeeAlso: AH=E1h,AX=E302h,AX=E402h
  8653. --------c-1AE402-----------------------------
  8654. INT 1A U - Disk Spool II v4.0x - SPOOL EXISTING FILE???
  8655.     AX = E402h
  8656.     ES:BX -> ASCIZ filename (max 32 chars)
  8657.     CL = printer port (01h COM1, 02h COM2, 05h LPT1, 06h LPT2)
  8658. Return: AH = status
  8659.         00h successful
  8660.         FFh failed
  8661. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8662.       as that is a licensed version of Disk Spool II
  8663. SeeAlso: AH=E1h,AX=E302h,AX=E401h
  8664. --------c-1AE5-------------------------------
  8665. INT 1A U - Emulaser ELSPL.COM - ???
  8666.     AH = E5h
  8667.     ???
  8668. Return: ???
  8669. Program: ELSPL.COM is a licensed version of Disk Spool II which is distributed
  8670.       as part of Vertisoft's Emulaser PostScript emulator
  8671. SeeAlso: AH=A0h,INT 17/AH=03h
  8672. --------c-1AEE-------------------------------
  8673. INT 1A U - Disk Spool II v4.05 - ???
  8674.     AH = EEh
  8675.     AL = printer port???
  8676.     ???
  8677. Return: ???
  8678. Note:    this function is also supported by Vertisoft's Emulaser utility ELSPL,
  8679.       as that is a licensed version of Disk Spool II
  8680. SeeAlso: AH=E1h
  8681. --------U-1AF7-------------------------------
  8682. INT 1A - RighTime v1.1 - TEMPORARILY DISABLE
  8683.     AH = F7h
  8684. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  8685.       system time to correct for clock drift
  8686. Note:    any AH value from F0h-F7h or F9h-FEh will perform this function in
  8687.       version 1.1, but F7h is the function called by transient portion
  8688. SeeAlso: AH=F8h,AH=FFh"RighTime"
  8689. --------U-1AF8-------------------------------
  8690. INT 1A - RighTime v1.1 - ENABLE
  8691.     AH = F8h
  8692. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  8693.       system time to correct for clock drift
  8694. Note:    RighTime is TeSseRact-compatible (see INT 2F/AX=5453h) and modifies its
  8695.       TeSseRact program identifier based on its current state: "RighTime"
  8696.       when enabled, "RighTim"F7h when disabled.
  8697. SeeAlso: AH=F7h,AH=FFh"RighTime"
  8698. --------b-1AFE-------------------------------
  8699. INT 1A - AT&T 6300 - READ TIME AND DATE
  8700.     AH = FEh
  8701. Return: BX = day count (0 = Jan 1, 1984)
  8702.     CH = hour
  8703.     CL = minute
  8704.     DH = second
  8705.     DL = hundredths
  8706. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FFh"AT&T",INT 21/AH=2Ah,INT 21/AH=2Ch
  8707. --------b-1AFF-------------------------------
  8708. INT 1A - AT&T 6300 - SET TIME AND DATE
  8709.     AH = FFh
  8710.     BX = day count (0 = Jan 1, 1984)
  8711.     CH = hour
  8712.     CL = minute
  8713.     DH = second
  8714.     DL = hundredths
  8715. Return: ???
  8716. SeeAlso: AX=CCCCh/BX=CCCCh,AH=FEh,INT 21/AH=2Bh"DATE",INT 21/AH=2Dh
  8717. --------U-1AFF-------------------------------
  8718. INT 1A - RighTime v1.1 - PERMANENTLY DISABLE
  8719.     AH = FFh
  8720. Program: RighTime is a TSR by G.T. Becker which continuously adjusts the
  8721.       system time to correct for clock drift
  8722. Note:    upon being permanently disabled, RighTime closes the file handle
  8723.       referencing its executable (which is updated with time correction
  8724.       information every two minutes while RighTime is enabled).
  8725. --------s-1AFF00-----------------------------
  8726. INT 1A - SND - INSTALLATION CHECK???
  8727.     AX = FF00h
  8728. Return: AL = version??? (02h)
  8729.     AH = busy flag (00h if not in a SND call, 01h if SND currently active)
  8730. Note:    the SND API is also supported by IC (Internal Commands) v2.0, a
  8731.       shareware TSR by Geoff Friesen which extends COMMAND.COM's internal
  8732.       command set
  8733. SeeAlso: AX=FF01h,AX=FF02h,AX=FF04h,AX=FF05h
  8734. --------s-1AFF01-----------------------------
  8735. INT 1A - SND - PAUSE
  8736.     AX = FF01h
  8737.     DX = number of clock ticks to delay
  8738. Return: AH = status
  8739.         00h successful
  8740.         01h SND busy
  8741. Notes:    if successful, execution returns to the caller after the delay expires;
  8742.       if SND is busy, execution returns immediately
  8743.     the IC v2.0 implementation of this API makes no special allowance for
  8744.       time rollover at midnight, which can cause the delay to be over one
  8745.       hour if this function is called just before the BIOS time count
  8746.       rolls over and the delay extends into the next day
  8747. SeeAlso: AX=FF00h,INT 15/AH=86h,INT 62/AX=0096h,INT 7F/AH=E8h,INT 80/BX=0009h
  8748. SeeAlso: INT E0/CL=BDh
  8749. --------s-1AFF02-----------------------------
  8750. INT 1A - SND - START SOUND
  8751.     AX = FF02h
  8752.     DX = frequency in Hertz (14h-FFFFh)
  8753. Return: AH = status
  8754.         00h successful
  8755.         01h SND busy
  8756. SeeAlso: AX=FF00h,AX=FF01h,AX=FF03h
  8757. --------s-1AFF03-----------------------------
  8758. INT 1A - SND - STOP SOUND
  8759.     AX = FF03h
  8760. Return: AH = status
  8761.         00h successful
  8762.         01h busy
  8763. Note:    turns off any sound currently being emitted by the PC's speaker unless
  8764.       SND is currently busy processing an API call (this includes
  8765.       background music).  Use AX=FF05h to stop the sound even if an API
  8766.       call is in progress.
  8767. SeeAlso: AX=FF00h,AX=FF02h,AX=FF05h
  8768. --------s-1AFF04-----------------------------
  8769. INT 1A - SND - PLAY MUSIC STRING IN BACKGROUND
  8770.     AX = FF04h
  8771.     DS:DX -> ASCIZ music string
  8772. Return: AH = status
  8773.         00h successful (music begins playing in background)
  8774.         01h busy
  8775. Note:    the music string accepted by SND is not the same as that accepted by
  8776.       BASIC and other programs which process music strings
  8777. SeeAlso: AX=FF00h,AX=FF05h,INT 80/BX=0006h
  8778. --------s-1AFF05-----------------------------
  8779. INT 1A - SND - UNCONDITIONALLY STOP SOUND
  8780.     AX = FF05h
  8781. Return: AH = 00h (successful)
  8782. Note:    this function is the same as AX=FF03h, but will stop the sound even if
  8783.       SND is currently busy, such as playing background music
  8784. SeeAlso: AX=FF00h,AX=FF03h,INT 80/BX=0007h
  8785. --------B-1B---------------------------------
  8786. INT 1B C - KEYBOARD - CONTROL-BREAK HANDLER
  8787. Desc:    this interrupt is automatically called when INT 09 determines that
  8788.       Control-Break has been pressed
  8789. Note:    normally points to a short routine in DOS which sets the Ctrl-C flag,
  8790.       thus invoking INT 23h the next time DOS checks for Ctrl-C.
  8791. SeeAlso: INT 23
  8792. --------B-1C---------------------------------
  8793. INT 1C - TIME - SYSTEM TIMER TICK
  8794. Desc:    this interrupt is automatically called on each clock tick by the INT 08
  8795.       handler
  8796. Notes:    this is the preferred interrupt to chain when a program needs to be
  8797.       invoked regularly
  8798.     not available on NEC 9800-series PCs
  8799. SeeAlso: INT 08,INT E2"PC Cluster"
  8800. --------B-1D---------------------------------
  8801. INT 1D - SYSTEM DATA - VIDEO PARAMETER TABLES
  8802. Note:    the default parameter table (see #0670) is located at F000h:F0A4h for
  8803.       100% compatible BIOSes
  8804. SeeAlso: INT 10/AH=00h
  8805.  
  8806. Format of video parameters:
  8807. Offset    Size    Description    (Table 0670)
  8808.  00h 16 BYTEs    6845 register values for modes 00h and 01h
  8809.  10h 16 BYTEs    6845 register values for modes 02h and 03h
  8810.  20h 16 BYTEs    6845 register values for modes 04h and 05h
  8811.  30h 16 BYTEs    6845 register values for modes 06h and 07h
  8812.  40h    WORD    bytes in video buffer for modes 00h and 01h (0800h)
  8813.  42h    WORD    bytes in video buffer for modes 02h and 03h (1000h)
  8814.  44h    WORD    bytes in video buffer for modes 04h and 05h (4000h)
  8815.  46h    WORD    bytes in video buffer for mode 06h (4000h)
  8816.  48h  8 BYTEs    columns on screen for each of modes 00h through 07h
  8817.  50h  8 BYTEs    CRT controller mode bytes for each of modes 00h through 07h
  8818. Note:    QEMM v7.5 Stealth appears to copy only the first 40h bytes of this
  8819.       table into always-accessible memory
  8820. --------B-1E---------------------------------
  8821. INT 1E - SYSTEM DATA - DISKETTE PARAMETERS
  8822. Notes:    the default parameter table (see #0671) is located at F000h:EFC7h for
  8823.       100% compatible BIOSes
  8824.     if the table is changed, INT 13/AH=00h should be called to ensure that
  8825.       the floppy-disk controller is appropriately reprogrammed
  8826. SeeAlso: INT 13/AH=0Fh,INT 41"HARD DISK 0",INT 4D/AH=0Ah
  8827.  
  8828. Format of diskette parameter table:
  8829. Offset    Size    Description    (Table 0671)
  8830.  00h    BYTE    first specify byte
  8831.         bits 7-4: step rate
  8832.         bits 3-0: head unload time (0Fh = 240 ms)
  8833.  01h    BYTE    second specify byte
  8834.         bits 7-1: head load time (01h = 4 ms)
  8835.         bit    0: non-DMA mode (always 0)
  8836.  02h    BYTE    delay until motor turned off (in clock ticks)
  8837.  03h    BYTE    bytes per sector (00h = 128, 01h = 256, 02h = 512, 03h = 1024)
  8838.  04h    BYTE    sectors per track
  8839.  05h    BYTE    length of gap between sectors (2Ah for 5.25", 1Bh for 3.5")
  8840.  06h    BYTE    data length (ignored if bytes-per-sector field nonzero)
  8841.  07h    BYTE    gap length when formatting (50h for 5.25", 6Ch for 3.5")
  8842.  08h    BYTE    format filler byte (default F6h)
  8843.  09h    BYTE    head settle time in milliseconds
  8844.  0Ah    BYTE    motor start time in 1/8 seconds
  8845. SeeAlso: #2481 at INT 4D/AH=09h
  8846. --------B-1F---------------------------------
  8847. INT 1F - SYSTEM DATA - 8x8 GRAPHICS FONT
  8848. Desc:    this vector points at 1024 bytes of graphics data, 8 bytes for each
  8849.       character 80h-FFh
  8850. Note:    graphics data for characters 00h-7Fh stored at F000h:FA6Eh in 100%
  8851.       compatible BIOSes
  8852. SeeAlso: INT 10/AX=5000h,INT 43
  8853. --------b-1F12-------------------------------
  8854. INT 1F U - C&T "SuperState" BIOS - POWER OFF
  8855.     AH = 12h
  8856. Return: none
  8857. Note:    POWER OFF
  8858. --------b-1F17-------------------------------
  8859. INT 1F U - C&T "SuperState" BIOS - EXECUTE FAR PROC ROUTINE ON SuperState
  8860.     AH = 17h
  8861.     ES:DI -> far procedure
  8862. Return: all registers except AH,ES,DI
  8863. Note:    You can change the BIOS area (F000h:0000h - F000h:FFFFh) only through
  8864.       this function
  8865. --------b-1F19-------------------------------
  8866. INT 1F U - C&T "SuperState" BIOS - ENABLE AUTO WAKEUP AND SET TIME AND DATE
  8867.     AH = 19h
  8868.     AL = hour in BCD
  8869.     BH = minutes in BCD
  8870.     BL = seconds in BCD
  8871.     CH = year century in BCD (must be 19h)
  8872.     CL = year low in BCD
  8873.     DH = month in BCD
  8874.     DL = date in BCD
  8875. Return: CF clear
  8876. --------b-1F1C-------------------------------
  8877. INT 1F U - C&T "SuperState" BIOS - SET SUSPEND TIMEOUT
  8878.     AH = 1Ch
  8879.     BX = sec until suspend starts
  8880. Return: None
  8881. --------b-1F1D-------------------------------
  8882. INT 1F U - C&T "SuperState" BIOS - SET SLEEP TIMEOUT
  8883.     AH = 1Dh
  8884.     BX = sec until sleep starts
  8885. Return: None
  8886. --------J-1F90-------------------------------
  8887. INT 1F - NEC PC-9801 - COPY EXTENDED MEMORY
  8888.     AH = 90h
  8889.     ES:BX -> global descriptor table (see #0403 at INT 15/AH=87h)
  8890.     CX = number of bytes to copy
  8891.     SI = 0000h
  8892.     DI = 0000h
  8893. Return: CF clear if successful
  8894.     CF set on error
  8895.     ???
  8896. SeeAlso: INT 15/AH=87h
  8897. --------b-1FF5--BLFA-------------------------
  8898. INT 1F U - C&T "SuperState" BIOS - REQUEST PASSWORD INPUT
  8899.     AH = F5h
  8900.     BL = FAh
  8901. Return: none
  8902. Note:    this function will not return until the correct password is entered
  8903. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
  8904. --------b-1FF5--BLFD-------------------------
  8905. INT 1F U - C&T "SuperState" BIOS - ENCRYPT PASSWORD
  8906.     AH = F5h
  8907.     BL = FDh
  8908.     CX:SI = input string
  8909.     DX:DI = encrypted string
  8910.     BH = length of input string
  8911. Return: CF set on error
  8912. SeeAlso: AH=F5h/BL=FAh,AH=F5h/BL=FEh
  8913. --------b-1FF5--BLFE-------------------------
  8914. INT 1F U - C&T "SuperState" BIOS - SET PASSWORD
  8915.     AH = F5h
  8916.     BL = FEh
  8917.     CX:SI -> input string
  8918.     BH = length of input string (if BH = 00h, clear password)
  8919. Return: CF set on error
  8920. Note:    the input string must be encrypted by INT 1Fh/AH=F5h/BL=FDh
  8921. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FFh
  8922. --------b-1FF5--BLFF-------------------------
  8923. INT 1F U - C&T "SuperState" BIOS - GET ENCRYPTED PASSWORD
  8924.     AH = F5h
  8925.     BL = FFh
  8926.     DX:DI = string buffer
  8927. Return: CF set on error
  8928.     CF clear if successful
  8929.         BH = length of input string (if BH = 00h, password is not valid)
  8930.         DX:DI -> encrypted password string
  8931. SeeAlso: AH=F5h/BL=FDh,AH=F5h/BL=FEh
  8932. --------b-1FFB-------------------------------
  8933. INT 1F U - C&T "SuperState" BIOS - GET/SET CPU SPEED
  8934.     AH = FBh
  8935.     BL = function
  8936.         00h get CPU speed
  8937.         Return: AL = current CPU speed (00h = fast, 01h = slow)
  8938.         01h set CPU speed
  8939.         AL = new CPU speed (00h = fast, 01h = slow)
  8940. SeeAlso: AH=FCh/BL=00h
  8941. --------b-1FFC--BL00-------------------------
  8942. INT 1F U - C&T "SuperState" BIOS - GET ALARM STATUS
  8943.     AH = FCh
  8944.     BL = 00h
  8945. Return: AL = current alarm state (00h = disabled, 01h = enabled)
  8946. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h
  8947. --------b-1FFC--BL01-------------------------
  8948. INT 1F U - C&T "SuperState" BIOS - SET ALARM STATUS
  8949.     AH = FCh
  8950.     BL = 01h
  8951.     AL = new alarm state (00h = disabled, 01h = enabled)
  8952. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h
  8953. --------b-1FFC--BL02-------------------------
  8954. INT 1F U - C&T "SuperState" BIOS - GET ALARM TIME
  8955.     AH = FCh
  8956.     BL = 02h
  8957. Return: CH = hour by BCD
  8958.     CL = min by BCD
  8959.     DH = sec by BCD
  8960. SeeAlso: AH=FCh/BL=00h,AH=FCh/BL=03h,AH=FCh/BL=04h
  8961. --------b-1FFC--BL03-------------------------
  8962. INT 1F U - C&T "SuperState" BIOS - SET ALARM TIME
  8963.     AH = FCh
  8964.     BL = 03h
  8965.     CH = hour by BCD
  8966.     CL = min by BCD
  8967.     DH = sec by BCD
  8968. Return: CF set on error (incorrect time format or Alarm is not enable)
  8969. SeeAlso: AH=FCh/BL=01h,AH=FCh/BL=02h,AH=FCh/BL=05h
  8970. --------b-1FFC--BL04-------------------------
  8971. INT 1F U - C&T "SuperState" BIOS - GET ALARM DATE
  8972.     AH = FCh
  8973.     BL = 04h
  8974. Return: CH = year century by BCD
  8975.     CL = year low by BCD
  8976.     DH = month by BCD
  8977.     DL = date by BCD
  8978. SeeAlso: AH=FCh/BL=02h,AH=FCh/BL=05h
  8979. --------b-1FFC--BL05-------------------------
  8980. INT 1F U - C&T "SuperState" BIOS - SET ALARM DATE
  8981.     AH = FCh
  8982.     BL = 05h
  8983.     CH = year century by BCD
  8984.     CL = year low by BCD
  8985.     DH = month by BCD
  8986.     DL = date by BCD
  8987. Return: CF set on error (incorrect date format or Alarm is not enable)
  8988. SeeAlso: AH=FCh/BL=03h,AH=FCh/BL=04h
  8989. --------b-1FFD--BL00-------------------------
  8990. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP STATUS
  8991.     AH = FDh
  8992.     BL = 00h
  8993. Return: AL = current wake-up state (00h = disabled, 01h = enabled)
  8994. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  8995. --------b-1FFD--BL01-------------------------
  8996. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP STATUS
  8997.     AH = FDh
  8998.     BL = 01h
  8999.     AL = new wake-up state (00h = disabled, 01h = enabled)
  9000. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  9001. --------b-1FFD--BL02-------------------------
  9002. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP TIME
  9003.     AH = FDh
  9004.     BL = 02h
  9005. Return: CH = hour by BCD
  9006.     CL = min by BCD
  9007.     DH = sec by BCD
  9008. SeeAlso: AH=FDh/BL=00h,AH=FDh/BL=03h
  9009. --------b-1FFD--BL03-------------------------
  9010. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP TIME
  9011.        AH = FDh
  9012.        BL = 03h
  9013.        CH = hour by BCD
  9014.        CL = min by BCD
  9015.        DH = sec by BCD
  9016. Return: CF set on error (incorrect Time format or Auto Wake up is not enable)
  9017. SeeAlso: AH=FDh/BL=01h,AH=FDh/BL=02h
  9018. --------b-1FFD--BL04-------------------------
  9019. INT 1F U - C&T "SuperState" BIOS - GET AUTO WAKE UP DATE
  9020.     AH = FDh
  9021.     BL = 04h
  9022. Return: CH = year century in BCD
  9023.     CL = year low in BCD
  9024.     DH = month in BCD
  9025.     DL = date in BCD
  9026. SeeAlso: AH=FDh/BL=02h,AH=FDh/BL=05h
  9027. --------b-1FFD--BL05-------------------------
  9028. INT 1F U - C&T "SuperState" BIOS - SET AUTO WAKE UP DATE
  9029.     AH = FDh
  9030.     BL = 05h
  9031.     CH = year century in BCD
  9032.     CL = year low in BCD
  9033.     DH = month in BCD
  9034.     DL = date in BCD
  9035. Return: CF set on error (incorrect date format or Auto Wake up is not enable)
  9036. SeeAlso: AH=FDh/BL=03h"C&T",AH=FDh/BL=04h"C&T"
  9037. --------O-20---------------------------------
  9038. INT 20 - Minix - SEND/RECEIVE MESSAGE
  9039.     AX = process ID of other process
  9040.     BX -> message
  9041.     CX = operation (1 send, 2 receive, 3 send&receive)
  9042. Program: Minix is a Version 7 Unix-compatible operating system by Andrew
  9043.       Tanenbaum
  9044. Note:    the message contains the system call number (numbered as in V7
  9045.       Unix(tm)) and the call parameters
  9046. --------D-20---------------------------------
  9047. INT 20 - DOS 1+ - TERMINATE PROGRAM
  9048.     CS = PSP segment
  9049. Return: never
  9050. Notes:    (see INT 21/AH=00h)
  9051.     this function sets the program's return code (ERRORLEVEL) to 00h
  9052. SeeAlso: INT 21/AH=00h,INT 21/AH=4Ch
  9053. --------G-20---------------------------------
  9054. INT 20 - COMTROL HOSTESS i/ISA DEBUGGER - INVOKE FIRMWARE DEBUGGER
  9055.     ???
  9056. Return: ???
  9057. SeeAlso: INT 21"COMTROL"
  9058. --------W-20---------------------------------
  9059. INT 20 P - Microsoft Windows - VxD SERVICES
  9060. Note:    the desired VxD and service number are identified by the data
  9061.       immediately following the INT 20 instruction, as in:
  9062.         INT    20h
  9063.         DW    service number
  9064.         DW    VxD identifier
  9065. SeeAlso: INT 2F/AX=1684h"DEVICE API",INT 30"Windows",#0672,#3382
  9066.  
  9067. (Table 0672)
  9068. Values for VMM (VxD ID 0001h) service number:
  9069.  0000h    get version
  9070.  0001h    get current VM handle
  9071.  0002h    test current VM handle
  9072.  0003h    get system VM handle
  9073.  0004h    test system VM handle
  9074.  0005h    validate VM handle
  9075.  0006h    get VMM reenter count
  9076.  0007h    begin reentrant execution
  9077.  0008h    end reentrant execution
  9078.  0009h    install V86 breakpoint
  9079.  000Ah    remove V86 breakpoint
  9080.  000Bh    allocate V86 callback
  9081.  000Ch    allocation PM callback
  9082.  000Dh    call when VM returns
  9083.  000Eh    schedule global event
  9084.  000Fh    schedule VM event
  9085.  0010h    call global event
  9086.  0011h    call VM event
  9087.  0012h    cancel global event
  9088.  0013h    cancel VM event
  9089.  0014h    call priority VM event
  9090.  0015h    cancel priority VM event
  9091.  0016h    get NMI handler address
  9092.  0017h    set NMI handler address
  9093.  0018h    hook NMI event
  9094.  0019h    call when VM interrupts enabled
  9095.  001Ah    enable VM interrupts
  9096.  001Bh    disable VM interrupts
  9097.  001Ch    map flat
  9098.  001Dh    map linear to VM address
  9099.  001Eh    adjust execution priority
  9100.  001Fh    begin critical section
  9101.  0020h    end critical section
  9102.  0021h    end critical section and suspend
  9103.  0022h    claim critical section
  9104.  0023h    release critical section
  9105.  0024h    call when not critical
  9106.  0025h    create semaphore
  9107.  0026h    destroy semaphore
  9108.  0027h    wait on semaphore
  9109.  0028h    signal semaphore
  9110.  0029h    get critical section status
  9111.  002Ah    call when task switched
  9112.  002Bh    suspend VM
  9113.  002Ch    resume VM
  9114.  002Dh    no-fail resume VM
  9115.  002Eh    nuke VM
  9116.  002Fh    crash current VM
  9117.  0030h    get execution focus
  9118.  0031h    set execution focus
  9119.  0032h    get time slice priority
  9120.  0033h    set time slice priority
  9121.  0034h    get time slice granularity
  9122.  0035h    set time slice granularity
  9123.  0036h    get time slice information
  9124.  0037h    adjust execution time
  9125.  0038h    release time slice
  9126.  0039h    wake up VM
  9127.  003Ah    call when idle
  9128.  003Bh    get next VM handle
  9129.  003Ch    set global timeout
  9130.  003Dh    set VM timeout
  9131.  003Eh    cancel timeout
  9132.  003Fh    get system time
  9133.     Return: EAX = time in milliseconds that Windows has been running
  9134.  0040h    get VM execution time
  9135.  0041h    hook V86 interrupt chain
  9136.  0042h    get V86 interrupt vector
  9137.  0043h    set V86 interrupt vector
  9138.  0044h    get PM interrupt vector
  9139.  0045h    set PM interrupt vector
  9140.  0046h    simulate interrupt
  9141.  0047h    simulate IRET
  9142.  0048h    simulate far call
  9143.  0049h    simulate far jump
  9144.  004Ah    simulate far RET
  9145.  004Bh    simulate far RET N
  9146.  004Ch    build interrupt stack frame
  9147.  004Dh    simulate push
  9148.  004Eh    simulate pop
  9149.  004Fh    _HeapAllocate
  9150.  0050h    _HeapReAllocate
  9151.  0051h    _HeapFree
  9152.  0052h    _HeapGetSize
  9153.  0053h    _PageAllocate
  9154.  0054h    _PageReAllocate
  9155.  0055h    _PageFree
  9156.  0056h    _PageLock
  9157.  0057h    _PageUnLock
  9158.  0058h    _PageGetSizeAddr
  9159.  0059h    _PageGetAllocInfo
  9160.  005Ah    _GetFreePageCount
  9161.  005Bh    _GetSysPageCount
  9162.  005Ch    _GetVMPgCount
  9163.  005Dh    _MapIntoV86
  9164.  005Eh    _PhysIntoV86
  9165.  005Fh    _TestGlobalV86Mem
  9166.  0060h    _ModifyPageBits
  9167.  0061h    copy page table
  9168.  0062h    map linear into V86
  9169.  0063h    linear page lock
  9170.  0064h    linear page unlock
  9171.  0065h    _SetResetV86Pageabl
  9172.  0066h    _GetV86PageableArray
  9173.  0067h    _PageCheckLinRange
  9174.  0068h    page out dirty pages
  9175.  0069h    discard pages
  9176.  006Ah    _GetNulPageHandle
  9177.  006Bh    get first V86 page
  9178.  006Ch    map physical address to linear address
  9179.  006Dh    _GetAppFlatDSAlias
  9180.  006Eh    _SelectorMapFlat
  9181.  006Fh    _GetDemandPageInfo
  9182.  0070h    _GetSetPageOutCount
  9183.  0071h    hook V86 page
  9184.  0072h    assign device V86 pages
  9185.  0073h    deassign device V86 pages
  9186.  0074h    get array of V86 pages for device
  9187.  0075h    _SetNULPageAddr
  9188.  0076h    allocate GDT selector
  9189.  0077h    free GDT selector
  9190.  0078h    allocate LDT selector
  9191.  0079h    free LDT selector
  9192.  007Ah    _BuildDescriptorDWORDs
  9193.  007Bh    get descriptor
  9194.  007Ch    set descriptor
  9195.  007Dh    toggle HMA
  9196.  007Eh    get fault hook addresses
  9197.  007Fh    hook V86 fault
  9198.  0080h    hook PM fault
  9199.  0081h    hook VMM fault
  9200.  0082h    begin nested V86 execution
  9201.  0083h    begin nested execution
  9202.  0084h    execute V86-mode interrupt
  9203.  0085h    resume execution
  9204.  0086h    end nested execution
  9205.  0087h    allocate PM application callback area
  9206.  0088h    get current PM application callback area
  9207.  0089h    set V86 execution mode
  9208.  008Ah    set PM execution mode
  9209.  008Bh    begin using locked PM stack
  9210.  008Ch    end using locked PM stack
  9211.  008Dh    save client state
  9212.  008Eh    restore client state
  9213.  008Fh    execute VxD interrupt
  9214.  0090h    hook device service
  9215.     EAX = service ID (high word = VxD ID, low = service number)
  9216.     ESI -> new handler
  9217.  0091h    hook device V86 API
  9218.  0092h    hook device PM API
  9219.  0093h    system control (see also #1972)
  9220.  0094h    simulate I/O
  9221.  0095h    install multiple I/O handlers
  9222.  0096h    install I/O handler
  9223.  0097h    enable global trapping
  9224.  0098h    enable local trapping
  9225.  0099h    disable global trapping
  9226.  009Ah    disable local trapping
  9227.  009Bh    create list
  9228.  009Ch    destroy list
  9229.  009Dh    allocate list
  9230.  009Eh    attach list
  9231.  009Fh    attach list tail
  9232.  00A0h    insert into list
  9233.  00A1h    remove from list
  9234.  00A2h    deallocate list
  9235.  00A3h    get first item in list
  9236.  00A4h    get next item in list
  9237.  00A5h    remove first item in list
  9238.  00A6h    add instance item
  9239.  00A7h    allocate device callback area
  9240.  00A8h    allocate global V86 data area
  9241.  00A9h    allocate temporary V86 data area
  9242.  00AAh    free temporary V86 data area
  9243.  00ABh    get decimal integer from profile
  9244.  00ACh    convert decimal string to integer
  9245.  00ADh    get fixed-point number from profile
  9246.  00AEh    convert fixed-point string
  9247.  00AFh    get hex integer from profile
  9248.  00B0h    convert hex string to integer
  9249.  00B1h    get boolean value from profile
  9250.  00B2h    convert boolean string
  9251.  00B3h    get string from profile
  9252.  00B4h    get next string from profile
  9253.  00B5h    get environment string
  9254.  00B6h    get exec path
  9255.  00B7h    get configuration directory
  9256.  00B8h    open file
  9257.  00B9h    get PSP segment
  9258.  00BAh    get DOS vectors
  9259.  00BBh    get machine information
  9260.  00BCh    get/set HMA information
  9261.  00BDh    set system exit code
  9262.  00BEh    fatal error handler
  9263.  00BFh    fatal memory error
  9264.  00C0h    update system clock
  9265.  00C1h    test if debugger installed
  9266.  00C2h    output debugger string
  9267.  00C3h    output debugger character
  9268.  00C4h    input debugger character
  9269.  00C5h    debugger convert hex to binary
  9270.  00C6h    debugger convert hex to decimal
  9271.  00C7h    debugger test if valid handle
  9272.  00C8h    validate client pointer
  9273.  00C9h    test reentry
  9274.  00CAh    queue debugger string
  9275.  00CBh    log procedure call
  9276.  00CCh    debugger test current VM
  9277.  00CDh    get PM interrupt type
  9278.  00CEh    set PM interrupt type
  9279.  00CFh    get last updated system time
  9280.  00D0h    get last updated VM execution time
  9281.  00D1h    test if double-byte character-set lead byte
  9282.  00D2h    _AddFreePhysPage
  9283.  00D3h    _PageResetHandlePAddr
  9284.  00D4h    _SetLastV86Page
  9285.  00D5h    _GetLastV86Page
  9286.  00D6h    _MapFreePhysReg
  9287.  00D7h    _UnmapFreePhysReg
  9288.  00D8h    _XchgFreePhysReg
  9289.  00D9h    _SetFreePhysRegCalBk
  9290.  00DAh    get next arena (MCB)
  9291.  00DBh    get name of ugly TSR
  9292.  00DCh    get debug options
  9293.  00DDh    set physical HMA alias
  9294.  00DEh    _GetGlblRng0V86IntBase
  9295.  00DFh    add global V86 data area
  9296.  00E0h    get/set detailed VM error
  9297.  00E1h    Is_Debug_Chr
  9298.  00E2h    clear monochrome screen
  9299.  00E3h    output character to mono screen
  9300.  00E4h    output string to mono screen
  9301.  00E5h    set current position on mono screen
  9302.  00E6h    get current position on mono screen
  9303.  00E7h    get character from mono screen
  9304.  00E8h    locate byte in ROM
  9305.  00E9h    hook invalid page fault
  9306.  00EAh    unhook invalid page fault
  9307.  00EBh    set delete on exit file
  9308.  0129h    "_Register_Win32_Services"
  9309.  013Fh    get start of VxD chain (see also #1972 at INT 2F/AX=1684h/BX=0017h)
  9310.  0146h    "Get_DDB"
  9311.  0148h    "_RegOpenKey"
  9312.  0149h    "_RegCloseKey"
  9313.  0151h    "_RegQueryValueEx"
  9314.  0191h    ...last service for Windows95 SP1
  9315.  811Ch    ??? (called by KEYREMAP.VXD)
  9316.     EAX = service ID (high word = VxD ID, low = service number)
  9317.     ESI -> handler
  9318. SeeAlso: #0673,INT 2F/AX=1684h/BX=0001h
  9319.  
  9320. (Table 0673)
  9321. Values for VPICD (VxD ID 0003h) service number:
  9322.  00h    get version
  9323.  01h    virtualize IRQ
  9324.  02h    set interrupt request
  9325.  03h    clear interrupt request
  9326.  04h    physical EOI
  9327.  05h    get complete status
  9328.  06h    get status
  9329.  07h    test physical request
  9330.  08h    physically mask
  9331.  09h    physically unmask
  9332.  0Ah    set automatic masking
  9333.  0Bh    get IRQ complete status
  9334.  0Ch    convert handle to IRQ
  9335.  0Dh    convert IRQ to interrupt
  9336.  0Eh    convert interrupt to IRQ
  9337.  0Fh    call on hardware interrupt
  9338.  10h    force default owner
  9339.  11h    force default behavior
  9340.  18h    ...last service for Windows95 SP1
  9341. SeeAlso: #0672,#0674,INT 2F/AX=1684h/BX=0003h
  9342.  
  9343. (Table 0674)
  9344. Values for VDMAD (VxD ID 0004h) service number:
  9345.  00h    get version
  9346.  01h    virtualize channel
  9347.  02h    get region information
  9348.  03h    set region information
  9349.  04h    get virtual state
  9350.  05h    set virtual state
  9351.  06h    set physical state
  9352.  07h    mask channel
  9353.  08h    unmask channel
  9354.  09h    lock DMA region
  9355.  0Ah    unlock DMA region
  9356.  0Bh    scatter lock
  9357.  0Ch    scatter unlock
  9358.  0Dh    reserve buffer space
  9359.  0Eh    request buffer
  9360.  0Fh    release buffer
  9361.  10h    copy to buffer
  9362.  11h    copy from buffer
  9363.  12h    default handler
  9364.  13h    disable translation
  9365.  14h    enable translation
  9366.  15h    get EISA address mode
  9367.  16h    set EISA address mode
  9368.  17h    unlock DMA region (ND)
  9369.  ...
  9370.  21h    ...last service for Windows95 SP1
  9371. SeeAlso: #0673,#1969,#1981 at INT 2F/AX=1684h/BX=0444h
  9372.  
  9373. (Table 0675)
  9374. Values for VTD (VxD ID 0005h) service number:
  9375.  0000h    get version
  9376.  0001h    update system clock
  9377.  0002h    get interrupt period
  9378.  0003h    begin minimum interrupt period
  9379.  0004h    end minimum interrupt period
  9380.  0005h    disable trapping
  9381.  0006h    enable trapping
  9382.  0007h    get real time
  9383.     Return: EDX:EAX = time in 840ns units since Windows was started
  9384.  0008h    "VTD_Get_Date_And_Time"
  9385.  0009h    ???
  9386.  000Ah    ...last service for Windows95 SP1
  9387. SeeAlso: #1969 at INT 2F/AX=1684h/BX=0005h
  9388.  
  9389. (Table 0676)
  9390. Values for V86MMGR (VxD ID 0006h) service number:
  9391.  00h    get version
  9392.  01h    allocate V86 pages
  9393.  02h    set EMS and XMS limits
  9394.  03h    get EMS and XMS limits
  9395.  04h    set mapping information
  9396.  05h    get mapping information
  9397.  06h    Xlat API
  9398.  07h    load client pointer
  9399.  08h    allocate buffer
  9400.  09h    free buffer
  9401.  0Ah    get Xlat buffer state
  9402.  0Bh    set Xlat buffer state
  9403.  0Ch    get VM flat selector
  9404.  0Dh    map pages
  9405.  0Eh    free page map region
  9406.  0Fh    _LocalGlobalReg
  9407.  10h    get page status
  9408.  11h    set local A20
  9409.  12h    reset base pages
  9410.  13h    set available mapped pages
  9411.  14h    "V86MMGR_NoUMBInitCalls"
  9412.  15h    "V86MMGR_Get_EMS_XMS_Avail"
  9413.  16h    "V86MMGR_Toggle_HMA"
  9414.  17h    "V86MMGR_Dev_Init"
  9415.  18h    "V86MMGR_Alloc_UM_Page"
  9416. SeeAlso: #1969,#0677,INT 2F/AX=1684h"DEVICE API"
  9417.  
  9418. (Table 0677)
  9419. Values for PageSwap (VxD ID 0007h) service number:
  9420.  00h    get version
  9421.  01h    test create
  9422.  02h    create swap file
  9423.  03h    destroy swap file
  9424.  04h    in
  9425.  05h    out
  9426.  06h    test if I/O valid
  9427.  07h    "Read_Or_Write"
  9428.  08h    "Grow_File"
  9429.  09h    "Init_File"
  9430. SeeAlso: #0676,#3349,#0678,#1970
  9431.  
  9432. (Table 3349)
  9433. Values for REBOOT (VxD ID 0009h) service number:
  9434.  00h    ???
  9435.  03h    ...last service for Windows95 SP1
  9436. SeeAlso: #0677,#0678,#1968
  9437.  
  9438. (Table 0678)
  9439. Values for VDD (VxD ID 000Ah) service number:
  9440.  00h    get version
  9441.  01h    PIF state
  9442.  02h    get GrabRtn
  9443.  03h    hide cursor
  9444.  04h    set VM type
  9445.  05h    get ModTime
  9446.  06h    set HCurTrk
  9447.  07h    message clear screen
  9448.  08h    message foreground color
  9449.  09h    message background color
  9450.  0Ah    message output text
  9451.  0Bh    message set cursor position
  9452.  0Ch    query access
  9453.  0Dh    "VDD_Check_Update_Soon"
  9454.  ...
  9455.  16h    ...last service for Windows95 SP1
  9456. SeeAlso: #3349,#0679,#1970
  9457.  
  9458. (Table 0679)
  9459. Values for VSD (VxD ID 000Bh) service number:
  9460.  00h    get version
  9461.  01h    bell
  9462.  02h    sound on
  9463.  03h    "VSD_TakeSoundPort"
  9464. SeeAlso: #0678,#0680
  9465.  
  9466. (Table 0680)
  9467. Values for VMD / VMOUSE (VxD ID 000Ch) service number:
  9468.  00h    get version
  9469.  01h    set mouse type
  9470.  02h    get mouse owner
  9471.  03h    "VMOUSE_Post_Pointer_Message"
  9472.  04h    "VMOUSE_Set_Cursor_Proc"
  9473.  05h    "VMOUSE_Call_Cursor_Proc"
  9474.  06h    "VMOUSE_Set_Mouse_Data~Get_Mouse_Data"
  9475.  07h    "VMOUSE_Manipulate_Pointer_Message"
  9476.  08h    "VMOUSE_Set_Middle_Button"
  9477.  ...
  9478.  0Bh    ...last service for Windows95 SP1
  9479. SeeAlso: #0679,#0681,INT 2F/AX=1684h/BX=000Ch
  9480.  
  9481. (Table 0681)
  9482. Values for VKD (VxD ID 000Dh) service number:
  9483.  00h    get version
  9484.  01h    define hotkey
  9485.  02h    remove hotkey
  9486.  03h    locally enable hotkey
  9487.  04h    locally disable hotkey
  9488.  05h    reflect hotkey
  9489.  06h    cancel hotkey state
  9490.  07h    force keys
  9491.  08h    get keyboard owner
  9492.  09h    define paste mode
  9493.  0Ah    start pasting
  9494.  0Bh    cancel paste
  9495.  0Ch    get message key
  9496.  0Dh    peek message key
  9497.  0Eh    flush message key queue
  9498.  14h    ...last service for Windows95 SP1
  9499. SeeAlso: #0680,#0682
  9500.  
  9501. (Table 0682)
  9502. Values for VCD (VxD ID 000Eh) service number:
  9503.  00h    get version
  9504.  01h    set port global
  9505.  02h    get focus
  9506.  03h    virtualize port
  9507.  ...
  9508.  0Ch    ...last service for Windows95 SP1
  9509. SeeAlso: #0681,#0683
  9510.  
  9511. (Table 0683)
  9512. Values for BlockDev/IOS (VxD ID 0010h) service number:
  9513.  00h    get version
  9514.  01h    register device
  9515.  02h    find INT 13 drive
  9516.  03h    get device list
  9517.  04h    send command
  9518.  05h    command complete
  9519.  06h    synchronous command
  9520.  07h    "IOS_Register"
  9521.  08h    "IOS_Requestor_Service"
  9522.  09h    "IOS_Exclusive_Access"
  9523.  0Ah    "IOS_Send_Next_Command"
  9524.  0Bh    "IOS_Set_Async_Time_Out"
  9525.  0Ch    "IOS_Signal_Semaphore_No_Switch"
  9526.  0Dh    "IOSIdleStatus"
  9527.  0Eh    "IOSMapIORSToI24"
  9528.  0Fh    "IOSMapIORSToI21"
  9529.  10h    ...last service for Windows95 SP1
  9530. SeeAlso: #0682,#3350
  9531.  
  9532. (Table 3350)
  9533. Values for VMCPD (VxD ID 0011h) service number:
  9534.  00h    "VMCPD_Get_Version"
  9535.  01h    "VMCPD_Get_Virt_State"
  9536.  02h    "VMCPD_Set_Virt_State"
  9537.  ...
  9538.  08h    ...last service for Windows95 SP1
  9539. SeeAlso: #0683,#0684,#1968
  9540.  
  9541. (Table 0684)
  9542. Values for EBIOS (VxD ID 0012h) service number:
  9543.  00h    get version
  9544.  01h    get unused memory
  9545. SeeAlso: #3350,#0685
  9546.  
  9547. (Table 0685)
  9548. Values for VNETBIOS (VxD ID 0014h) service number:
  9549.  00h    get version
  9550.  01h    register
  9551.  02h    submit
  9552.  03h    enum
  9553.  04h    deregister
  9554.  05h    register2
  9555.  06h    map
  9556.  07h    enum2
  9557. SeeAlso: #0684,#0686
  9558.  
  9559. (Table 0686)
  9560. Values for DOSMGR (VxD ID 0015h) service number:
  9561.  00h    get version
  9562.  01h    set exec VM data
  9563.  02h    coyp VM drive state
  9564.  03h    execute VM
  9565.  04h    get InDOS pointer
  9566.  05h    add device
  9567.  06h    remove device
  9568.  07h    instance device
  9569.  08h    get DOS critical status
  9570.  09h    enable InDOS polling
  9571.  0Ah    backfill allowed
  9572.  0Bh    "LocalGlobalReg"
  9573.  0Ch    "Init_UMB_Area"
  9574.  0Dh    "Begin_V86_App"
  9575.  0Eh    "End_V86_App"
  9576.  0Fh    "Alloc_Local_Sys_VM_Mem"
  9577.  10h    ???
  9578.  11h    ???
  9579.  12h    ...last service for Windows95 SP1
  9580. SeeAlso: #0685,#1971 at INT 2F/AX=1684h/BX=0015h
  9581.  
  9582. (Table 0687)
  9583. Values for SHELL (VxD ID 0017h) service number:
  9584.  00h    get version
  9585.  01h    resolve contention
  9586.  02h    event
  9587.  03h    SYSMODAL message
  9588.  04h    message
  9589.  05h    get VM information
  9590.  06h    "_SHELL_PostMessage"
  9591.  07h    "_SHELL_WinExec"
  9592.  08h    "_SHELL_CallDll"
  9593.  09h    "SHELL_OpenClipboard"
  9594.  0Ah    "SHELL_SetClipboardData"
  9595.  0Bh    "SHELL_GetClipboardData"
  9596.  0Ch    "SHELL_CloseClipboard"
  9597.  0Dh    "_SHELL_Install_Taskman_Hooks"
  9598.  0Eh    "SHELL_Hook_Properties"
  9599.  0Fh    "SHELL_Unhook_Properties"
  9600.  10h    "SHELL_OEMKeyScan"
  9601.  11h    "SHELL_Update_User_Activity"
  9602.  ...
  9603.  1Bh    ...last service for Windows95 SP1
  9604. SeeAlso: #0686,#0688,#1972 at INT 2F/AX=1684h/BX=0017h
  9605.  
  9606. (Table 0688)
  9607. Values for VMPoll (VxD ID 0018h) service number:
  9608.  00h    get version
  9609.  01h    enable/disable
  9610.  02h    reset detection
  9611.  03h    check idle
  9612. SeeAlso: #0675,#1972 at INT 2F/AX=1684h/BX=0017h
  9613.  
  9614. (Table 0689)
  9615. Values for DOSNET (VxD ID 001Ah) service number:
  9616.  00h    get version
  9617.  01h    send FILESYSCHANGE
  9618.  02h    do PSP adjust
  9619. SeeAlso: #0688,#3351
  9620.  
  9621. (Table 3351)
  9622. Values for LoadHi (VxD ID 001Ch) service number:
  9623.  00h    get version
  9624.     Return:    CF clear
  9625.         EAX = version (AH = major, AL = minor)
  9626.         ESI -> ASCIZ signature "LoadHi"
  9627. SeeAlso: #0689,#0690
  9628.  
  9629. (Table 0690)
  9630. Values for Int13 (VxD ID 0020h) service number:
  9631.  00h    get version
  9632.  01h    device registered
  9633.  02h    translate VM interrupt
  9634.  03h    hooking BIOS interrupt
  9635.  04h    unhooking BIOS interrupt
  9636. SeeAlso: #3351,#0691
  9637.  
  9638. (Table 0691)
  9639. Values for PAGEFILE (VxD ID 0021h) service number:
  9640.  00h    get version
  9641.  01h    init file
  9642.  02h    clean up
  9643.  03h    grow file
  9644.  04h    read or write
  9645.  05h    cancel
  9646.  06h    test I/O valid
  9647.  07h    "Get_Size_Info"
  9648.  08h    "Set_Async_Manager"
  9649.  09h    "Call_Async_Manager"
  9650. SeeAlso: #0690,#1976 at INT 2F/AX=1684h/BX=0021h
  9651.  
  9652. (Table 3505)
  9653. Values for VPOWERD (VxD ID 0026h) service number:
  9654.  00h    get version
  9655.     Return:    CF clear
  9656.         EAX = version (AH = major, AL = minor)
  9657.  01h    get APM BIOS version
  9658.     Return: CF clear
  9659.         EAX = APM BIOS version
  9660.  02h    get current power management level
  9661.     Return: CF clear
  9662.         EAX = power management level
  9663.  03h    enable/disable power management (see INT 15/AX=5308h)
  9664.     Return: EAX = error code (see #3506) or 00000000h if successful
  9665.  04h    set power state (see INT 15/AX=5307h)
  9666.     ???
  9667.     Return: EAX = error code (see #3506) or 00000000h if successful
  9668.  05h    set system power status
  9669.     Return: EAX = error code (see #3506) or 00000000h if successful
  9670.  06h    restore APM power-on defaults (see INT 15/AX=5309h)
  9671.     Return: EAX = error code (see #3506) or 00000000h if successful
  9672.  07h    get power status (see INT 15/AX=530Ah)
  9673.     Return: ???
  9674.  08h    get APM 1.1 power state (see INT 15/AX=530Ch)
  9675.     Return: ???
  9676.  09h    invoke OEM APM function
  9677.     ??? -> bufer containing parameters for INT 15/AX=5380h
  9678.     Return: EAX = error code (see #3506) or 00000000h if successful
  9679.         buffer updated if successful
  9680.  0Ah    register power handler
  9681.     ???
  9682.     Return: EAX = error code (see #3506) or 00000000h if successful
  9683.  0Bh    deregister power handler
  9684.     ???
  9685.     Return: EAX = error code (see #3506) or 00000000h if successful
  9686.  0Ch    Win32 get system power status
  9687.  0Dh    Win32 set system power status
  9688. SeeAlso: #0691,#3352,INT 2F/AX=1684h/BX=0026h
  9689.  
  9690. (Table 3352)
  9691. Values for VXDLDR (VxD ID 0027h) service number:
  9692.  00h    "VXDLDR_Get_Version"
  9693.  01h    "VXDLDR_LoadDevice"
  9694.  02h    "VXDLDR_UnloadDevice"
  9695.  03h    "VXDLDR_DevInitSucceeded"
  9696.  04h    "VXDLDR_DevInitFailed"
  9697.  05h    "VXDLDR_GetDeviceList"
  9698.  06h    "VXDLDR_UnloadMe"
  9699.  07h    "PELDR_LoadModule"
  9700.  08h    "PELDR_GetModuleHandle"
  9701.  09h    "PELDR_GetModuleUsage"
  9702.  0Ah    "PELDR_GetEntryPoint"
  9703.  0Bh    "PELDR_GetProcAddress"
  9704.  0Ch    "PELDR_AddExportTable"
  9705.  0Dh    "PELDR_RemoveExportTable"
  9706.  0Eh    "PELDR_FreeModule"
  9707.  ...
  9708.  11h    ...last service for Windows95 SP1
  9709. SeeAlso: #0691,#3353
  9710.  
  9711. (Table 3353)
  9712. Values for NDIS (VxD ID 0028h) service number:
  9713.  00h    "NdisGetVersion"
  9714.  01h    "NdisAllocateSpinLock"
  9715.  02h    "NdisFreeSpinLock"
  9716.  03h    "NdisAcquireSpinLock"
  9717.  04h    "NdisReleaseSpinLock"
  9718.  05h    "NdisOpenConfiguration"
  9719.  06h    "NdisReadConfiguration"
  9720.  07h    "NdisCloseConfiguration"
  9721.  08h    "NdisReadEisaSlotInformation"
  9722.  09h    "NdisReadMcaPosInformation"
  9723.  0Ah    "NdisAllocateMemory"
  9724.  0Bh    "NdisFreeMemory"
  9725.  0Ch    "NdisSetTimer"
  9726.  0Dh    "NdisCancelTimer"
  9727.  0Eh    "NdisStallExecution"
  9728.  0Fh    "NdisInitializeInterrupt"
  9729.  10h    "NdisRemoveInterrupt"
  9730.  11h    "NdisSynchronizeWithInterrupt"
  9731.  12h    "NdisOpenFile"
  9732.  13h    "NdisMapFile"
  9733.  14h    "NdisUnmapFile"
  9734.  15h    "NdisCloseFile"
  9735.  16h    "NdisAllocatePacketPool"
  9736.  17h    "NdisFreePacketPool"
  9737.  18h    "NdisAllocatePacket"
  9738.  19h    "NdisReinitializePacket"
  9739.  1Ah    "NdisFreePacket"
  9740.  1Bh    "NdisQueryPacket"
  9741.  1Ch    "NdisAllocateBufferPool"
  9742.  1Dh    "NdisFreeBufferPool"
  9743.  1Eh    "NdisAllocateBuffer"
  9744.  1Fh    "NdisCopyBuffer"
  9745.  20h    "NdisFreeBuffer"
  9746.  21h    "NdisQueryBuffer"
  9747.  22h    "NdisGetBufferPhysicalAddress"
  9748.  23h    "NdisChainBufferAtFront"
  9749.  24h    "NdisChainBufferAtBack"
  9750.  25h    "NdisUnchainBufferAtFront"
  9751.  26h    "NdisUnchainBufferAtBack"
  9752.  27h    "NdisGetNextBuffer"
  9753.  28h    "NdisCopyFromPacketToPacket"
  9754.  29h    "NdisRegisterProtocol"
  9755.  2Ah    "NdisDeregisterProtocol"
  9756.  2Bh    "NdisOpenAdapter"
  9757.  2Ch    "NdisCloseAdapter"
  9758.  2Dh    "NdisSend"
  9759.  2Eh    "NdisTransferData"
  9760.  2Fh    "NdisReset"
  9761.  30h    "NdisRequest"
  9762.  31h    "NdisInitializeWrapper"
  9763.  32h    "NdisTerminateWrapper"
  9764.  33h    "NdisRegisterMac"
  9765.  34h    "NdisDeregisterMac"
  9766.  35h    "NdisRegisterAdapter"
  9767.  36h    "NdisDeregisterAdapter"
  9768.  37h    "NdisCompleteOpenAdapter"
  9769.  38h    "NdisCompleteCloseAdapter"
  9770.  39h    "NdisCompleteSend"
  9771.  3Ah    "NdisCompleteTransferData"
  9772.  3Bh    "NdisCompleteReset"
  9773.  3Ch    "NdisCompleteRequest"
  9774.  3Dh    "NdisIndicateReceive"
  9775.  3Eh    "NdisIndicateReceiveComplete"
  9776.  3Fh    "NdisIndicateStatus"
  9777.  40h    "NdisIndicateStatusComplete"
  9778.  41h    "NdisCompleteQueryStatistics"
  9779.  42h    "NdisEqualString"
  9780.  43h    "NdisNetAddressStringToBinary"
  9781.  44h    "NdisReadNetworkAddress"
  9782.  45h    "NdisWriteErrorLogEntry"
  9783.  46h    "C_MapPhysToLinear"
  9784.  47h    "C_HeapFree"
  9785.  48h    "NdisAllocateSharedMemory"
  9786.  49h    "NdisFreeSharedMemory"
  9787.  ...
  9788.  5Fh    ...last service for Windows95 SP1
  9789. SeeAlso: #3352,#3354
  9790.  
  9791. (Table 3354)
  9792. Values for VWIN32 (VxD ID 002Ah) service number:
  9793.  00h    "VWin32_Get_Version"
  9794.  01h    "VWin32_Wake_For_Event"
  9795.  02h    "_VWIN32_QueueUserApc"
  9796.  03h    "_VWIN32_Get_Thread_Context"
  9797.  04h    "_VWIN32_Set_Thread_Context"
  9798.  05h    "_VWIN32_CopyMem"
  9799.  06h    "_VWIN32_BlockForTermination"
  9800.  ...
  9801.  1Ch    ...last service for Windows95 SP1
  9802. SeeAlso: #3353,#3355
  9803.  
  9804. (Table 3355)
  9805. Values for VCOMM (VxD ID 002Bh) service number:
  9806.  00h    "VCOMM_Get_Version"
  9807.  01h    "_VCOMM_Register_Port_Driver"
  9808.  02h    "_VCOMM_Acquire_Port"
  9809.  03h    "_VCOMM_Release_Port"
  9810.  04h    "_VCOMM_OpenComm"
  9811.  05h    "_VCOMM_SetCommState"
  9812.  06h    "_VCOMM_GetCommState"
  9813.  07h    "_VCOMM_SetupComm"
  9814.  08h    "_VCOMM_TransmitCommChar"
  9815.  09h    "_VCOMM_CloseComm"
  9816.  0Ah    "_VCOMM_GetCommQueueStatus"
  9817.  0Bh    "_VCOMM_ClearCommError"
  9818.  0Ch    "_VCOMM_GetModemStatus"
  9819.  0Dh    "_VCOMM_GetCommProperties"
  9820.  0Eh    "_VCOMM_EscapeCommFunction"
  9821.  0Fh    "_VCOMM_PurgeComm"
  9822.  10h    "_VCOMM_SetCommEventMask"
  9823.  11h    "_VCOMM_GetCommEventMask"
  9824.  12h    "_VCOMM_WriteComm"
  9825.  13h    "_VCOMM_ReadComm"
  9826.  14h    "_VCOMM_EnableCommNotification"
  9827.  15h    "_VCOMM_GetLastError"
  9828.  16h    "_VCOMM_Steal_Port"
  9829.  17h    "_VCOMM_SetReadCallBack"
  9830.  18h    "_VCOMM_SetWriteCallBack"
  9831.  19h    "_VCOMM_GetSetCommTimeouts"
  9832.  1Ah    "_VCOMM_SetWriteRequest"
  9833.  1Bh    "_VCOMM_SetReadRequest"
  9834.  1Ch    "_VCOMM_Dequeue_Request"
  9835.  ...
  9836.  22h    ...last service for Windows95 SP1
  9837. SeeAlso: #3354,#3356
  9838.  
  9839. (Table 3356)
  9840. Values for SPOOLER (VxD ID 002Ch) service number:
  9841.  00h    ???
  9842.  10h    ...last service for Windows95 SP1
  9843. SeeAlso: #3355,#3389
  9844.  
  9845. (Table 3389)
  9846. Values for VSERVER (VxD ID 0032h) service number:
  9847.  00h    get VSERVER version
  9848.     Return: CF clear
  9849.         EAX = version (AH = major, AL = minor)
  9850.         EBX = ??? (00000000h)
  9851.  01h    allocate ???
  9852.     AX = ???
  9853.     ESI = ???
  9854.     Return: CF clear if successful
  9855.         CF set on error (table full)
  9856.  02h    NOP???
  9857.     Return: EBX = 00000000h
  9858.  03h    ???
  9859.     Return: ZF clear
  9860. SeeAlso: #3356,#3357,INT 2F/AX=1684h/BX=0032h
  9861.  
  9862. (Table 3357)
  9863. Values for CONFIGMG (VxD ID 0033h) service number:
  9864.  00h    ???
  9865.  5Ah    ...last service for Windows95 SP1
  9866. Note:    the VxD services appear to be identical to the PM/V86 APIs on
  9867.       INT 2F/AX=1684h
  9868. SeeAlso: #3389,#3358,INT 2F/AX=1684h/BX=0033h
  9869.  
  9870. (Table 3461)
  9871. Values for DWCFGMG.SYS (VxD ID 0034h) service number:
  9872.  00h    "CM_GetVersion" get supported DDI version
  9873.     Return: EAX = 00000000h if not installed
  9874.         else
  9875.             AH = major version number
  9876.             AL = minor version number
  9877.             EBX = number of devices controlled by DWCFGMG.SYS
  9878.  01h    "CM_GetConfig" get device configuration
  9879.     EBX = device index
  9880.     EDI -> buffer for configuration information (see #1980)
  9881.     Return: EAX = status (0000h successful, 0001h index out of range)
  9882.  02h    "CM_LockConfig" lock device configuration
  9883.     EDI -> configuration information (see #1980)
  9884.     Return: EAX = status
  9885.             0000h successful
  9886.             0001h resource conflict
  9887.             0002h invalid request
  9888.  03h    "CM_UnlockConfig" unlock device configuration
  9889.     EDI -> configuration information (see #1980)
  9890.     Return: EAX = status (0000h successful, 0001h invalid request)
  9891.  04h    "CME_QueryResources"
  9892.  05h    "CME_AllocResources"
  9893.  06h    "CME_DeallocResources"
  9894. SeeAlso: INT 2F/AX=1684h/BX=0034h
  9895.  
  9896. (Table 3358)
  9897. Values for VFBACKUP (VxD ID 0036h) service number:
  9898.  00h    get version
  9899.     Return: CF clear
  9900.         EAX = version (AH = major, AL = minor)
  9901.  05h    ...last service for Windows95 SP1
  9902. SeeAlso: #3357,#3509
  9903.  
  9904. (Table 3509)
  9905. Values for ENABLE (VxD ID 0037h) service number:
  9906.  00h    get version
  9907.     Return: CF clear
  9908.         EAX = version (AH = major, AL = minor)
  9909.  01h    ??? (performs VMMCall 1800Eh, then falls through to service 04h)
  9910.     Return: EAX = system time???
  9911.  02h    get current ???
  9912.     Return: EAX = ???
  9913.  03h    ??? (schedules a global event via VMMCall 1800Eh)
  9914.     Return: ???
  9915.  04h    get system time??? (performs VMMCall 100CFh)
  9916.     Return: EAX = system time???
  9917.  05h    call ??? priority event
  9918.     Return: nothing
  9919.  06h    set ??? / get ???
  9920.     EDI -> buffer containing data to copy into VxD and space for results
  9921.     Return: EDI buffer updated
  9922.  07h    ???
  9923.     EBX = ??? flags (bits 2,15,17,18 checked)
  9924.     EDI -> ???
  9925.     ???
  9926.     Return: ???
  9927.  08h    ??? (schedules a global event via VMMCall 1800Eh)
  9928.     Return: ???
  9929.  09h    get ??? data
  9930.     EDI -> buffer for data (see #3510)
  9931.     Return:    EDI buffer updated if large enough
  9932. SeeAlso: #3358,#3359,#3508 at INT 2F/AX=1684h/BX=0037h
  9933.  
  9934. Format of ENABLE.VXD ??? data:
  9935. Offset    Size    Description    (Table 3510)
  9936.  00h    DWORD    (ret) length of data, including this word
  9937.         (call) length of buffer
  9938.  04h    DWORD    -> 24-byte (or larger) buffer
  9939.  08h    DWORD    -> 20-byte buffer
  9940.  0Ch    DWORD    -> 260-byte buffer
  9941.  10h    DWORD    -> 260-byte buffer
  9942. SeeAlso: #3509
  9943.  
  9944. (Table 3359)
  9945. Values for VCOND (VxD ID 0038h) service number:
  9946.  00h    get VCOND version
  9947.     Return: CF clear
  9948.         EAX = version (AH = major, AL = minor)
  9949.  01h    ???
  9950. SeeAlso: #3511,#3509,#3360
  9951.  
  9952. (Table 3511)
  9953. Values for Windows95 VCOND (Vxd ID 0038h) Win32 service number:
  9954.  00h    get VCOND version
  9955.     Return: EAX = version (AH = major, AL = minor)
  9956.  ...
  9957.  34h    ...last Win32 service for Windows95 SP1
  9958. SeeAlso: #3359
  9959.  
  9960. (Table 3360)
  9961. Values for BIOS (VxD ID 003Dh) service number:
  9962.  00h    get version???
  9963.  01h    ???
  9964.  02h    ???
  9965.  03h    ???
  9966. SeeAlso: #3359,#3390
  9967.  
  9968. (Table 3390)
  9969. Values for WSOCK (VxD ID 003Eh) service number:
  9970.  00h    get WSOCK version
  9971.     Return: CF clear
  9972.         AH = major version
  9973.         AL = minor version
  9974.         EAX high word = 0000h
  9975.  01h    ???
  9976.     EAX = ??? or 00000000h
  9977.     Return: CF clear if successful
  9978.             EAX = 00000000h
  9979.         CF set on error
  9980.             EAX = ???
  9981.  02h    ???
  9982.     EAX = ??? or 00000000h
  9983.     Return: ???
  9984.  03h    ???
  9985.  04h    ...last service for Windows95 SP1
  9986. SeeAlso: #3360,#3361
  9987.  
  9988. (Table 3361)
  9989. Values for IFSMGR (VxD ID 0040h) service number:
  9990.  00h    get version
  9991.  01h    "RegisterMount"
  9992.  02h    "RegisterNet"
  9993.  03h    "RegisterMailSlot"
  9994.  04h    "Attach"
  9995.  05h    "Detach"
  9996.  06h    "Get_NetTime"
  9997.  07h    "Get_DOSTime"
  9998.  08h    "SetupConnection"
  9999.  09h    "DerefConnection"
  10000.  0Ah    "ServerDOSCall"
  10001.  0Bh    "CompleteAsync"
  10002.  0Ch    "RegisterHeap"
  10003.  0Dh    "GetHeap"
  10004.  0Eh    "RetHeap"
  10005.  0Fh    "CheckHeap"
  10006.  10h    "CheckHeapItem"
  10007.  11h    "FillHeapSpare"
  10008.  12h    "Block"
  10009.  13h    "Wakeup"
  10010.  14h    "Yield"
  10011.  15h    "SchedEvent"
  10012.  16h    "QueueEvent"
  10013.  17h    "KillEvent"
  10014.  18h    "FreeIOReg"
  10015.  19h    "MakeMailSlot"
  10016.  1Ah    "DeleteMailSlot"
  10017.  1Bh    "WriteMailSlot"
  10018.  1Ch    "PopUp"
  10019.  1Dh    "printf"
  10020.  1Eh    "AssertFailed"
  10021.  1Fh    "LogEntry"
  10022.  20h    "DebugMenu"
  10023.  21h    "DebugVars"
  10024.  22h    "GetDebugString"
  10025.  23h    "GetDebugHexNum"
  10026.  24h    "NetFunction"
  10027.  25h    "DoDelAllUses"
  10028.  26h    "SetErrString"
  10029.  27h    "GetErrString"
  10030.  28h    "SetReqHook"
  10031.  29h    "SetPathHook"
  10032.  2Ah    "UseAdd"
  10033.  2Bh    "UseDel"
  10034.  2Ch    "InitUseAdd"
  10035.  2Dh    "ChangeDir"
  10036.  2Eh    "DelAllUses"
  10037.  2Fh    "CDROM_Attach"
  10038.  30h    "CDROM_Detach"
  10039.  31h    "Win32DupHandle"
  10040.  32h    "Ring0_FileIO"
  10041.  33h    "Toggle_Extended_File_Handle"
  10042.  34h    "IFSMgr_GetDrive_Info"
  10043.  35h    "IFSMgr_Ring0GetDriveInfo"
  10044.  36h    "IFSMgr_BlockNoEvents"
  10045.  37h    "IFSMgr_NetToDosTime"
  10046.  38h    "IFSMgr_DosToNetTime"
  10047.  39h    "IFSMgr_DosToWin32Time"
  10048.  3Ah    "IFSMgr_Win32ToDosTime"
  10049.  3Bh    "IFSMgr_NetToWin32Time"
  10050.  3Ch    "IFSMgr_Win32ToNetTime"
  10051.  3Dh    "IFSMgr_MetaMatch"
  10052.  3Eh    "IFSMgr_TransMatch"
  10053.  3Fh    "IFSMgr_CallProvider"
  10054.  40h    "UniToBCS"
  10055.  41h    "UniToBCSPath"
  10056.  42h    "BCSToUni"
  10057.  43h    "UniToUpper"
  10058.  44h    "UniCharToOEM"
  10059.  45h    "CreateBasis"
  10060.  46h    "MatchBasisName"
  10061.  47h    "AppendBasisTail"
  10062.  48h    "FcbToShort"
  10063.  49h    "ShortToFcb"
  10064.  4Ah    "IFSMgr_ParsePath"
  10065.  4Bh    "Query_PhysLock"
  10066.  4Ch    "_VolFlush"
  10067.  4Dh    "NotifyVolumeArrival"
  10068.  4Eh    "NotifyVolumeRemoval"
  10069.  4Fh    "QueryVolumeRemoval"
  10070.  50h    "IFSMgr_FSDUnmountCFSD"
  10071.  51h    "IFSMgr_GetConversionTablePtrs"
  10072.  52h    "IFSMgr_CheckAccessConflict"
  10073.  53h    "IFSMgr_LockFile"
  10074.  54h    "IFSMgr_UnlockFile"
  10075.  55h    "IFSMgr_RemoveLocks"
  10076.  56h    "IFSMgr_CheckLocks"
  10077.  57h    "IFSMgr_CountLocks"
  10078.  58h    "IFSMgr_ReassignLockFileInst"
  10079.  59h    "IFSMgr_UnassignLockList"
  10080.  5Ah    "IFSMgr_MountChildVolume"
  10081.  5Bh    "IFSMgr_UnmountChildVolume"
  10082.  5Ch    "IFSMgr_SwapDrives"
  10083.  5Dh    "IFSMgr_FSDMapFHtoIOREQ"
  10084.  5Eh    "IFSMgr_FSDParsePath"
  10085.  5Fh    "IFSMgr_FSDAttachSFT"
  10086.  60h    "IFSMgr_GetTimeZoneBias"
  10087.  61h    "IFSMgr_PNPEvent"
  10088.  62h    "IFSMgr_RegisterCFSD"
  10089.  63h    "IFSMgr_Win32MapExtendedHandleToSFT"
  10090.  64h    "IFSMgr_DbgSetFileHandleLimit"
  10091.  65h    "IFSMgr_Win32MapSFTToExtendedHandle"
  10092.  66h    "IFSMgr_FSDGetCurrentDrive"
  10093.  ...
  10094.  74h    ...last service for Windows95 SP1
  10095. SeeAlso: #3390,#3362
  10096.  
  10097. (Table 3362)
  10098. Values for VCDFSD (VxD ID 0041h) service number:
  10099.  00h    get VCDFSD version???
  10100.  01h    ???
  10101.  02h    ???
  10102.  03h    ???
  10103. SeeAlso: #3361,#3363
  10104.  
  10105. (Table 3363)
  10106. Values for PERF (VxD ID 0048h) service number:
  10107.  00h    get version
  10108.     Return: CF clear
  10109.         EAX = version (AH = major, AL = minor)
  10110.  01h    start performance monitoring??? (creates/sets a registry key)
  10111.  02h    end performance monitoring??? (deletes registry key)
  10112.  03h    start performance monitoring??? (creates/sets a registry key)
  10113.  04h    end performance monitoring??? (deletes registry key)
  10114. SeeAlso: #3362,#3364
  10115.  
  10116. (Table 3364)
  10117. Values for VFLATD (VxD ID 011Fh) service number:
  10118.  00h    get VFLATD version???
  10119.  01h    ???
  10120. SeeAlso: #3363,#3365
  10121.  
  10122. (Table 3365)
  10123. Values for vjoyd (VxD ID 0449h) service number:
  10124.  00h    get vjoyd version???
  10125.  01h    ???
  10126. SeeAlso: #3364,#3366
  10127.  
  10128. (Table 3366)
  10129. Values for mmdevldr (VxD ID 044Ah) service number:
  10130.  00h    get mmdevldr version???
  10131.  01h    ???
  10132.  02h    ???
  10133.  03h    ???
  10134.  04h    ???
  10135.  05h    ???
  10136. SeeAlso: #3365,#3367
  10137.  
  10138. (Table 3367)
  10139. Values for VNetSup (VxD ID 0480h) service number:
  10140.  00h    get VNetSup version???
  10141.  01h    ???
  10142.  02h    ???
  10143.  03h    ???
  10144.  04h    ???
  10145.  05h    ???
  10146.  06h    ???
  10147. SeeAlso: #3366,#3368
  10148.  
  10149. (Table 3368)
  10150. Values for VREDIR (VxD ID 0481h) service number:
  10151.  00h    ???
  10152.  10h    ...last service for Windows95 SP1
  10153. SeeAlso: #3367,#3369
  10154.  
  10155. (Table 3369)
  10156. Values for VSHARE (VxD ID 0483h) service number:
  10157.  00h    get VSHARE version???
  10158. SeeAlso: #3368,#3370
  10159.  
  10160. (Table 3370)
  10161. Values for NWLINK (VxD ID 0487h) service number:
  10162.  00h    ???
  10163.  06h    ...last service for Windows95 SP1
  10164. SeeAlso: #3369,#3371,#1968
  10165.  
  10166. (Table 3371)
  10167. Values for VTDI (VxD ID 0488h) service number:
  10168.  00h    ???
  10169.  0Dh    ...last service for Windows95 SP1
  10170. SeeAlso: #3370,#3372
  10171.  
  10172. (Table 3372)
  10173. Values for VIP (VxD ID 0489h) service number:
  10174.  00h    ???
  10175.  08h    ...last service for Windows95 SP1
  10176. SeeAlso: #3371,#3373
  10177.  
  10178. (Table 3373)
  10179. Values for MSTCP (VxD ID 048Ah) service number:
  10180.  00h    get MSTCP version???
  10181. SeeAlso: #3372,#3374
  10182.  
  10183. (Table 3374)
  10184. Values for VCACHE (VxD ID 048Bh) service number:
  10185.  00h    "VCACHE_Get_Version"
  10186.  01h    "VCACHE_Register"
  10187.  02h    "VCACHE_GetSize"
  10188.  03h    "VCACHE_CheckAvail"
  10189.  04h    "VCACHE_FindBlock"
  10190.  05h    "VCACHE_FreeBlock"
  10191.  06h    "VCACHE_MakeMRU"
  10192.  07h    "VCACHE_Hold"
  10193.  08h    "VCACHE_Unhold"
  10194.  09h    "VCACHE_Enum"
  10195.  0Ah    "VCACHE_TestHandle"
  10196.  0Bh    "VCACHE_VerifySums"
  10197.  0Ch    "VCACHE_RecalcSums"
  10198.  0Dh    "VCACHE_TestHold"
  10199.  0Eh    "VCACHE_GetStats"
  10200.  ...
  10201.  18h    ...last service for Windows95 SP1
  10202. SeeAlso: #3373,#3375
  10203.  
  10204. (Table 3375)
  10205. Values for NWREDIR (VxD ID 048Eh) service number:
  10206.  00h    get NWREDIR version???
  10207.  01h    ???
  10208. SeeAlso: #3374,#3383
  10209.  
  10210. (Table 3383)
  10211. Values for FILESEC (VxD ID 0491h) service number:
  10212.  00h    ???
  10213.  10h    ...last service for Windows95 SP1
  10214. SeeAlso: #3375,#3387
  10215.  
  10216. (Table 3387)
  10217. Values for NWSERVER (VxD ID 0492h) service number:
  10218.  00h    get NWSERVER version???
  10219.  01h    ???
  10220.  02h    ???
  10221.  03h    ???
  10222. SeeAlso: #3383,#3385
  10223.  
  10224. (Table 3385)
  10225. Values for MSSP/NWSP (VxD ID 0493h) service number:
  10226.  00h    ???
  10227.  06h    ...last service for Windows95 SP1
  10228. SeeAlso: #3387,#3376
  10229.  
  10230. (Table 3376)
  10231. Values for NSCL (VxD ID 0494h)    service number:
  10232.  00h    get NSCL version???
  10233.  01h    ???
  10234.  02h    ???
  10235. SeeAlso: #3385,#3503
  10236.  
  10237. (Table 3503)
  10238. Values for AFVXD (VxD ID 0495h) service number:
  10239.  00h    get version
  10240.     Return: CF clear
  10241.         AX = version (AH = high, AL = low)
  10242.  01h    ???
  10243.     EAX -> ???
  10244.     EBX -> ???
  10245.     ECX = ???
  10246.     Return:    ???
  10247.  02h    ???
  10248.     EAX -> ???
  10249.     Return: ???
  10250. SeeAlso: #3376,#3386
  10251.  
  10252. (Table 3386)
  10253. Values for NDIS2SUP (VxD ID 0496h) service number:
  10254.  00h    get NDIS2SUP version???
  10255.  01h    ???
  10256. SeeAlso: #3503,#3388
  10257.  
  10258. (Table 3388)
  10259. Values for Splitter (VxD ID 0498h) service number:
  10260.  00h    get Splitter version
  10261.     Return:    CF clear
  10262.         EAX = version (00000001h)
  10263.  01h    ???
  10264.  02h    ???
  10265.  03h    hook/unhook VMM "hook device service" service
  10266.     EAX = request (0 = unhook, nonzero = hook)
  10267.     Return: if EAX nonzero on entry, Splitter's service 04h replaces VMM
  10268.           service 0090h; otherwise, default handler is restored
  10269.  04h    Splitter "hook device service" handler
  10270. SeeAlso: #3386,#3377
  10271.  
  10272. (Table 3377)
  10273. Values for PPPMAC (VxD ID 0499h) service number:
  10274.  00h    ???
  10275.  09h    ...last service for Windows95 SP1
  10276. SeeAlso: #3388,#3378,#1968
  10277.  
  10278. (Table 3378)
  10279. Values for VDHCP (VxD ID 049Ah) service number:
  10280.  00h    get VDHCP version???
  10281.  01h    ???
  10282.  02h    ???
  10283.  03h    ???
  10284. SeeAlso: #3377,#3379
  10285.  
  10286. (Table 3379)
  10287. Values for VNBT (VxD ID 049Bh) service number:
  10288.  00h    get VNBT version???
  10289. SeeAlso: #3378,#3384
  10290.  
  10291. (Table 3384)
  10292. Values for LOGGER (VxD ID 049Dh) service number:
  10293.  00h    get LOGGER version???
  10294.  01h    ???
  10295.  02h    ???
  10296.  03h    ???
  10297.  04h    ???
  10298. SeeAlso: #3379,#3380
  10299.  
  10300. (Table 3380)
  10301. Values for VStlthD (VxD ID 3098h) service number:
  10302.  00h    get version
  10303.     Return:    CF clear
  10304.         EAX = version (AH = major, AL = BCD minor)
  10305.  01h    ???
  10306.  02h    get current ???
  10307.     Return: CF clear
  10308.         EDX = current value of ???
  10309.  03h    ???
  10310. SeeAlso: #3384,#3391
  10311.  
  10312. (Table 3391)
  10313. Values for WSVV (VxD ID 30F6h) service number:
  10314.  00h    get WSVV version???
  10315. SeeAlso: #3380,#3381
  10316.  
  10317. (Table 3381)
  10318. Values for ASPIENUM (VxD ID 33FCh) service number:
  10319.  00h    get ASPIENUM version???
  10320.  01h    ???
  10321.  02h    ???
  10322.  03h    ???
  10323. SeeAlso: #3391,#3382
  10324.  
  10325. (Table 3382)
  10326. Values for DSOUND (VxD ID 357Eh) service number:
  10327.  00h    get DSOUND version???
  10328.  01h    ???
  10329.  02h    ???
  10330. SeeAlso: #3381,#1968
  10331. --------G-21---------------------------------
  10332. INT 21 - COMTROL HOSTESS i/ISA DEBUGGER - GET SEGMENT FOR CONTROL PROGRAM USE
  10333.     ???
  10334. Return: AX = first segment available for control program use
  10335. SeeAlso: INT 20"COMTROL",INT 22"COMTROL"
  10336. --------D-2100-------------------------------
  10337. INT 21 - DOS 1+ - TERMINATE PROGRAM
  10338.     AH = 00h
  10339.     CS = PSP segment
  10340. Notes:    Microsoft recommends using INT 21/AH=4Ch for DOS 2+
  10341.     this function sets the program's return code (ERRORLEVEL) to 00h
  10342.     execution continues at the address stored in INT 22 after DOS performs
  10343.       whatever cleanup it needs to do (restoring the INT 22,INT 23,INT 24
  10344.       vectors from the PSP assumed to be located at offset 0000h in the
  10345.       segment indicated by the stack copy of CS, etc.)
  10346.     if the PSP is its own parent, the process's memory is not freed; if
  10347.       INT 22 additionally points into the terminating program, the
  10348.       process is effectively NOT terminated
  10349.     not supported by MS Windows 3.0 DOSX.EXE DOS extender
  10350. SeeAlso: AH=26h,AH=31h,AH=4Ch,INT 20,INT 22
  10351. --------D-2101-------------------------------
  10352. INT 21 - DOS 1+ - READ CHARACTER FROM STANDARD INPUT, WITH ECHO
  10353.     AH = 01h
  10354. Return: AL = character read
  10355. Notes:    ^C/^Break are checked, and INT 23 executed if read
  10356.     ^P toggles the DOS-internal echo-to-printer flag
  10357.     ^Z is not interpreted, thus not causing an EOF if input is redirected
  10358.     character is echoed to standard output
  10359.     standard input is always the keyboard and standard output the screen
  10360.       under DOS 1.x, but they may be redirected under DOS 2+
  10361. SeeAlso: AH=06h,AH=07h,AH=08h,AH=0Ah
  10362. --------v-21010F-----------------------------
  10363. INT 21 - VIRUS - "Susan" - INSTALLATION CHECK
  10364.     AX = 010Fh
  10365. Return: AX = 7553h ("Su") if resident
  10366. SeeAlso: INT 16/AH=DDh"VIRUS",INT 21/AX=0B56h
  10367. --------D-2102-------------------------------
  10368. INT 21 - DOS 1+ - WRITE CHARACTER TO STANDARD OUTPUT
  10369.     AH = 02h
  10370.     DL = character to write
  10371. Return: AL = last character output (despite the official docs which state
  10372.         nothing is returned) (at least DOS 2.1-5.0)
  10373. Notes:    ^C/^Break are checked, and INT 23 executed if pressed
  10374.     standard output is always the screen under DOS 1.x, but may be
  10375.       redirected under DOS 2+
  10376.     the last character output will be the character in DL unless DL=09h
  10377.       on entry, in which case AL=20h as tabs are expanded to blanks
  10378.     if standard output is redirected to a file, no error checks (write-
  10379.       protected, full media, etc.) are performed
  10380. SeeAlso: AH=06h,AH=09h
  10381. --------D-2103-------------------------------
  10382. INT 21 - DOS 1+ - READ CHARACTER FROM STDAUX
  10383.     AH = 03h
  10384. Return: AL = character read
  10385. Notes:    keyboard checked for ^C/^Break, and INT 23 executed if detected
  10386.     STDAUX is usually the first serial port
  10387. SeeAlso: AH=04h,INT 14/AH=02h,INT E0/CL=03h
  10388. --------D-2104-------------------------------
  10389. INT 21 - DOS 1+ - WRITE CHARACTER TO STDAUX
  10390.     AH = 04h
  10391.     DL = character to write
  10392. Notes:    keyboard checked for ^C/^Break, and INT 23 executed if detected
  10393.     STDAUX is usually the first serial port
  10394.     if STDAUX is busy, this function will wait until it becomes free
  10395. SeeAlso: AH=03h,INT 14/AH=01h,INT E0/CL=04h
  10396. --------D-2105-------------------------------
  10397. INT 21 - DOS 1+ - WRITE CHARACTER TO PRINTER
  10398.     AH = 05h
  10399.     DL = character to print
  10400. Notes:    keyboard checked for ^C/^Break, and INT 23 executed if detected
  10401.     STDPRN is usually the first parallel port, but may be redirected under
  10402.       DOS 2+
  10403.     if the printer is busy, this function will wait
  10404. SeeAlso: INT 17/AH=00h
  10405. --------D-2106-------------------------------
  10406. INT 21 - DOS 1+ - DIRECT CONSOLE OUTPUT
  10407.     AH = 06h
  10408.     DL = character (except FFh)
  10409. Return: AL = character output (despite official docs which state nothing is
  10410.         returned) (at least DOS 2.1-5.0)
  10411. Notes:    does not check ^C/^Break
  10412.     writes to standard output, which is always the screen under DOS 1.x,
  10413.       but may be redirected under DOS 2+
  10414. SeeAlso: AH=02h,AH=09h
  10415. --------D-2106--DLFF-------------------------
  10416. INT 21 - DOS 1+ - DIRECT CONSOLE INPUT
  10417.     AH = 06h
  10418.     DL = FFh
  10419. Return: ZF set if no character available
  10420.         AL = 00h
  10421.     ZF clear if character available
  10422.         AL = character read
  10423. Notes:    ^C/^Break are NOT checked
  10424.     if the returned character is 00h, the user pressed a key with an
  10425.       extended keycode, which will be returned by the next call of this
  10426.       function
  10427.     this function reads from standard input, which is always the keyboard
  10428.       under DOS 1.x, but may be redirected under DOS 2+
  10429.     although the return of AL=00h when no characters are available is not
  10430.       documented, some programs rely on this behavior
  10431. SeeAlso: AH=0Bh
  10432. --------D-2107-------------------------------
  10433. INT 21 - DOS 1+ - DIRECT CHARACTER INPUT, WITHOUT ECHO
  10434.     AH = 07h
  10435. Return: AL = character read from standard input
  10436. Notes:    does not check ^C/^Break
  10437.     standard input is always the keyboard under DOS 1.x, but may be
  10438.       redirected under DOS 2+
  10439.     if the interim console flag is set (see AX=6301h), partially-formed
  10440.       double-byte characters may be returned
  10441. SeeAlso: AH=01h,AH=06h,AH=08h,AH=0Ah
  10442. --------D-2108-------------------------------
  10443. INT 21 - DOS 1+ - CHARACTER INPUT WITHOUT ECHO
  10444.     AH = 08h
  10445. Return: AL = character read from standard input
  10446. Notes:    ^C/^Break are checked, and INT 23 executed if detected
  10447.     standard input is always the keyboard under DOS 1.x, but may be
  10448.       redirected under DOS 2+
  10449.     if the interim console flag is set (see AX=6301h), partially-formed
  10450.       double-byte characters may be returned
  10451. SeeAlso: AH=01h,AH=06h,AH=07h,AH=0Ah,AH=64h"DOS 3.2+"
  10452. --------D-2109-------------------------------
  10453. INT 21 - DOS 1+ - WRITE STRING TO STANDARD OUTPUT
  10454.     AH = 09h
  10455.     DS:DX -> '$'-terminated string
  10456. Return: AL = 24h (the '$' terminating the string, despite official docs which
  10457.         state that nothing is returned) (at least DOS 2.1-5.0 and
  10458.         NWDOS)
  10459. Notes:    ^C/^Break are checked, and INT 23 is called if either pressed
  10460.     standard output is always the screen under DOS 1.x, but may be
  10461.       redirected under DOS 2+
  10462.     under the FlashTek X-32 DOS extender, the pointer is in DS:EDX
  10463. SeeAlso: AH=02h,AH=06h"OUTPUT"
  10464. --------D-210A-------------------------------
  10465. INT 21 - DOS 1+ - BUFFERED INPUT
  10466.     AH = 0Ah
  10467.     DS:DX -> buffer (see #0692)
  10468. Return: buffer filled with user input
  10469. Notes:    ^C/^Break are checked, and INT 23 is called if either detected
  10470.     reads from standard input, which may be redirected under DOS 2+
  10471.     if the maximum buffer size (see #0692) is set to 00h, this call returns
  10472.       immediately without reading any input
  10473. SeeAlso: AH=0Ch,INT 2F/AX=4810h
  10474.  
  10475. Format of DOS input buffer:
  10476. Offset    Size    Description    (Table 0692)
  10477.  00h    BYTE    maximum characters buffer can hold
  10478.  01h    BYTE    (call) number of chars from last input which may be recalled
  10479.         (ret) number of characters actually read, excluding CR
  10480.  02h  N BYTEs    actual characters read, including the final carriage return
  10481. --------K-210A00-----------------------------
  10482. INT 21 - WCED v1.6+ - INSTALLATION CHECK
  10483.     AX = 0A00h
  10484.     DS:DX -> 6-byte buffer whose first two bytes must be 00h
  10485. Return: buffer offset 02h-05h filled with "Wced" if installed
  10486. Program: WCED is a free command-line editor and history utility by Stuart
  10487.       Russell
  10488. SeeAlso: AH=FFh"CED"
  10489. --------D-210B-------------------------------
  10490. INT 21 - DOS 1+ - GET STDIN STATUS
  10491.     AH = 0Bh
  10492. Return: AL = status
  10493.         00h if no character available
  10494.         FFh if character is available
  10495. Notes:    ^C/^Break are checked, and INT 23 is called if either pressed
  10496.     standard input is always the keyboard under DOS 1.x, but may be
  10497.       redirected under DOS 2+
  10498.     if the interim console flag is set (see AX=6301h), this function
  10499.       returns AL=FFh if a partially-formed double-byte character is
  10500.       available
  10501. SeeAlso: AH=06h"INPUT",AX=4406h
  10502. --------v-210B56-----------------------------
  10503. INT 21 - VIRUS - "Perfume" - INSTALLATION CHECK
  10504.     AX = 0B56h
  10505. Return: AX = 4952h if resident
  10506. SeeAlso: AX=0D20h,INT 12/AX=4350h/BX=4920h,INT 13/AH=F2h,INT 21/AX=010Fh
  10507. --------D-210C-------------------------------
  10508. INT 21 - DOS 1+ - FLUSH BUFFER AND READ STANDARD INPUT
  10509.     AH = 0Ch
  10510.     AL = STDIN input function to execute after flushing buffer
  10511.     other registers as appropriate for the input function
  10512. Return: as appropriate for the specified input function
  10513. Note:    if AL is not one of 01h,06h,07h,08h, or 0Ah, the buffer is flushed but
  10514.       no input is attempted
  10515. SeeAlso: AH=01h,AH=06h"INPUT",AH=07h,AH=08h,AH=0Ah
  10516. --------D-210D-------------------------------
  10517. INT 21 - DOS 1+ - DISK RESET
  10518.     AH = 0Dh
  10519. Return: (DOS 6 only) CF clear (earlier versions preserve CF)
  10520. Notes:    This function writes all modified disk buffers to disk, but does not
  10521.       update the directory information (that is only done when files are
  10522.       closed or a SYNC call is issued)
  10523. SeeAlso: AX=5D01h,INT 13/AH=00h,INT 2F/AX=1120h
  10524. --------v-210D20-----------------------------
  10525. INT 21 - VIRUS - "Crazy Imp" - INSTALLATION CHECK
  10526.     AX = 0D20h
  10527. Return: AX = 1971h if resident
  10528. SeeAlso: AX=0B56h,AX=1812h,AX=2C2Ch,AX=710Dh,AH=30h/DX=ABCDh
  10529. --------D-210E-------------------------------
  10530. INT 21 - DOS 1+ - SELECT DEFAULT DRIVE
  10531.     AH = 0Eh
  10532.     DL = new default drive (00h = A:, 01h = B:, etc)
  10533. Return: AL = number of potentially valid drive letters
  10534. Notes:    under Novell NetWare, the return value is always 32, the number of
  10535.       drives that NetWare supports
  10536.     under DOS 3.0+, the return value is the greatest of 5, the value of
  10537.       LASTDRIVE= in CONFIG.SYS, and the number of drives actually present
  10538.     on a DOS 1.x/2.x single-floppy system, AL returns 2 since the floppy
  10539.       may be accessed as either A: or B:
  10540.     otherwise, the return value is the highest drive actually present
  10541.     DOS 1.x supports a maximum of 16 drives, 2.x a maximum of 63 drives,
  10542.       and 3+ a maximum of 26 drives
  10543.     under Novell DOS 7, this function returns the correct LASTDRIVE value
  10544.       even when the undocumented LASTDRIVE=27..32 directive was used in
  10545.       CONFIG.SYS
  10546. SeeAlso: AH=19h,AH=3Bh,AH=DBh
  10547. --------v-210E--DLAD-------------------------
  10548. INT 21 U - Novell DOS 7 - SDRes v27.03 - INSTALLATION CHECK
  10549.     AH = 0Eh
  10550.     DL = ADh
  10551. Return: AL = BAh if installed
  10552. Program: SDRes is the resident portion of the Search&Destroy antiviral by
  10553.       Fifth Generation Systems, as bundled with Novell DOS 7
  10554. Note:    SDRes will terminate programs which test for the presence of viruses
  10555.       using interrupt-based installation calls, saying that the program
  10556.       may be infected
  10557. SeeAlso: AH=0Eh/DL=AEh,AH=0Eh/DL=AFh,AH=4Ah/BX=00B6h,INT 13/AX=A759h
  10558. --------v-210E--DLAE-------------------------
  10559. INT 21 U - Novell DOS 7 - SDRes v27.03 - CLEAR ??? FLAG
  10560.     AH = 0Eh
  10561.     DL = AEh
  10562. SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AFh,INT 13/AX=A759h
  10563. --------v-210E--DLAF-------------------------
  10564. INT 21 U - Novell DOS 7 - SDRes v27.03 - SET ??? FLAG
  10565.     AH = 0Eh
  10566.     DL = AFh
  10567. SeeAlso: AH=0Eh/DL=ADh,AH=0Eh/DL=AEh,INT 13/AX=A759h
  10568. --------D-210F-------------------------------
  10569. INT 21 - DOS 1+ - OPEN FILE USING FCB
  10570.     AH = 0Fh
  10571.     DS:DX -> unopened File Control Block (see #0693,#0694)
  10572. Return: AL = status
  10573.         00h successful
  10574.         FFh file not found or access denied
  10575. Notes:    (DOS 3.1+) file opened for read/write in compatibility mode
  10576.     an unopened FCB has the drive, filename, and extension fields filled
  10577.       in and all other bytes cleared
  10578.     not supported by MS Windows 3.0 DOSX.EXE DOS extender
  10579.     DR DOS checks password attached with AX=4303h
  10580.     (FAT32 drive) this function will only succeed for creating a volume
  10581.       label; FAT32 does not support FCBs for file I/O
  10582. BUG:    APPEND for DOS 3.3+ corrupts DX if the file is not found
  10583. SeeAlso: AH=10h,AH=16h,AH=3Dh,AX=4303h
  10584.  
  10585. Format of File Control Block:
  10586. Offset    Size    Description    (Table 0693)
  10587.  00h    BYTE    drive number (0 = default, 1 = A, etc)
  10588.         FFh is not allowed (signals extended FCB, see #0694)
  10589.  01h  8 BYTEs    blank-padded file name
  10590.  09h  3 BYTEs    blank-padded file extension
  10591.  0Ch    WORD    current block number
  10592.  0Eh    WORD    logical record size
  10593.  10h    DWORD    file size
  10594.  14h    WORD    date of last write (see #1006 at AX=5700h)
  10595.  16h    WORD    time of last write (see #1005 at AX=5700h) (DOS 1.1+)
  10596.  18h  8 BYTEs    reserved (see #0695,#0696,#0697,#0698,#0699)
  10597.  20h    BYTE    record within current block
  10598.  21h    DWORD    random access record number (if record size is > 64 bytes, high
  10599.           byte is omitted)
  10600. SeeAlso: #0694
  10601.  
  10602. Format of Extended File Control Block (XFCB):
  10603. Offset    Size    Description    (Table 0694)
  10604.  00h    BYTE    FFh signature for extended FCB
  10605.  01h  5 BYTEs    reserved
  10606.  06h    BYTE    file attribute if extended FCB
  10607.  07h 36 BYTEs    standard FCB (all offsets are shifted by seven bytes)
  10608. SeeAlso: #0653
  10609.  
  10610. Format of FCB reserved field for DOS 1.0:
  10611. Offset    Size    Description    (Table 0695)
  10612.  16h    WORD    location in directory (if high byte = FFh, low byte is device
  10613.           ID)
  10614.  18h    WORD    number of first cluster in file
  10615.  1Ah    WORD    current absolute cluster number on disk
  10616.  1Ch    WORD    current relative cluster number within file
  10617.         (0 = first cluster of file, 1 = second cluster, etc.)
  10618.  1Eh    BYTE    dirty flag (00h = not dirty)
  10619.  1Fh    BYTE    unused
  10620.  
  10621. Format of FCB reserved field for DOS 1.10-1.25:
  10622. Offset    Size    Description    (Table 0696)
  10623.  18h    BYTE    bit 7: set if logical device
  10624.         bit 6: not dirty
  10625.         bits 5-0: disk number or logical device ID
  10626.  19h    WORD    starting cluster number on disk
  10627.  1Bh    WORD    current absolute cluster number on disk
  10628.  1Dh    WORD    current relative cluster number within file
  10629.  1Fh    BYTE    unused
  10630.  
  10631. Format of FCB reserved field for DOS 2.x:
  10632. Offset    Size    Description    (Table 0697)
  10633.  18h    BYTE    bit 7: set if logical device
  10634.         bit 6: set if open???
  10635.         bits 5-0: ???
  10636.  19h    WORD    starting cluster number on disk
  10637.  1Bh    WORD    ???
  10638.  1Dh    BYTE    ???
  10639.  1Eh    BYTE    ???
  10640.  1Fh    BYTE    ???
  10641.  
  10642. Format of FCB reserved field for DOS 3.x:
  10643. Offset    Size    Description    (Table 0698)
  10644.  18h    BYTE    number of system file table entry for file
  10645.  19h    BYTE    attributes
  10646.         bits 7,6: 00 = SHARE.EXE not loaded, disk file
  10647.               01 = SHARE.EXE not loaded, character device
  10648.               10 = SHARE.EXE loaded, remote file
  10649.               11 = SHARE.EXE loaded, local file or device
  10650.         bits 5-0: low six bits of device attribute word
  10651. ---SHARE.EXE loaded, local file---
  10652.  1Ah    WORD    starting cluster of file on disk
  10653.  1Ch    WORD    (DOS 3.x) offset within SHARE of sharing record
  10654.           (see #0978 at AH=52h)
  10655.  1Eh    BYTE    file attribute
  10656.  1Fh    BYTE    ???
  10657. ---SHARE.EXE loaded, remote file---
  10658.  1Ah    WORD    number of sector containing directory entry (see #0700)
  10659.  1Ch    WORD    relative cluster within file of last cluster accessed
  10660.  1Eh    BYTE    absolute cluster number of last cluster accessed
  10661.  1Fh    BYTE    ???
  10662. ---SHARE.EXE not loaded---
  10663.  1Ah    BYTE    (low byte of device attribute word AND 0Ch) OR open mode
  10664.  1Bh    WORD    starting cluster of file
  10665.  1Dh    WORD    number of sector containing directory entry (see #0700)
  10666.  1Fh    BYTE    number of directory entry within sector
  10667. Note:    if FCB opened on character device, DWORD at 1Ah is set to the address
  10668.       of the device driver header, then the BYTE at 1Ah is overwritten.
  10669. SeeAlso: #0987
  10670.  
  10671. Format of FCB reserved field for DOS 5.0:
  10672. Offset    Size    Description    (Table 0699)
  10673.  18h    BYTE    number of system file table entry for file
  10674.  19h    BYTE    attributes
  10675.         bits 7,6: 00 = SHARE.EXE not loaded, disk file
  10676.               01 = SHARE.EXE not loaded, character device
  10677.               10 = SHARE.EXE loaded, remote file
  10678.               11 = SHARE.EXE loaded, local file or device
  10679.         bits 5-0: low six bits of device attribute word
  10680. ---SHARE.EXE loaded, local file---
  10681.  1Ah    WORD    starting cluster of file on disk
  10682.  1Ch    WORD    unique sequence number of sharing record
  10683.  1Eh    BYTE    file attributes
  10684.  1Fh    BYTE    unused???
  10685. ---SHARE.EXE loaded, remote file---
  10686.  1Ah    WORD    network handle
  10687.  1Ch    DWORD    network ID
  10688. ---SHARE not loaded, local device---
  10689.  1Ah    DWORD    pointer to device driver header (see #0987)
  10690.  1Eh  2 BYTEs    unused???
  10691. ---SHARE not loaded, local file---
  10692.  1Ah    BYTE    extra info
  10693.         bit 7: read-only attribute from SFT
  10694.         bit 6: archive attribute from SFT
  10695.         bits 5-0: high bits of sector number
  10696.  1Bh    WORD    starting cluster of file
  10697.  1Dh    WORD    low word of sector number containing directory entry
  10698.         (see #0700)
  10699.  1Fh    BYTE    number of directory entry within sector
  10700. --------!---Section--------------------------
  10701.